Volba správné verze Node.js pro Azure
Při vývoji javascriptových aplikací pro Azure je důležité sladit verze Node.js v místním vývojovém prostředí a hostitelském prostředí runtime. Toto zarovnání verzí zajišťuje kompatibilitu, snižuje pravděpodobnost chyb za běhu a využívá úplné funkce platformy Azure. V tomto článku se dozvíte, jak vybrat příslušnou verzi Node.js pro aplikace a služby hostované v Azure.
verze Node.js
Node.js se řídí předvídatelným plánem vydávání verzí, který zahrnuje dlouhodobě podporované verze (LTS) a aktuální vydání. Verze LTS jsou určené pro dlouhodobou údržbu a stabilitu, což je ideální pro produkční prostředí. Tyto verze dostávají důležité opravy chyb, aktualizace zabezpečení a vylepšení výkonu po delší dobu, obvykle 30 měsíců. Node.js používá systém sudého a lichého číslování pro rozlišení mezi LTS a aktuálními verzemi: sudé verze (např. 18, 20) jsou LTS, zatímco liché verze (např. 19, 21) jsou aktuální. Aktuální verze zahrnují nejnovější funkce a vylepšení, ale jsou podporovány jen šest měsíců; poté přecházejí na verzi LTS, pokud mají sudé číslo.
V produkčním prostředí byste neměli používat aktuální vydání, protože šestiměsíční interval může nesouhlasit s runtimy a sadami SDK pro Azure. Všimněte si, že vývojové kontejnery pro Node.js nenabízí liché nebo aktuální verze.
Požadavky
Všechny sady Azure SDK a hostitelské služby používají LTS verze Node.js. Pokud je kód aplikace spuštěný v předchozí verzi Node.js, již není k dispozici pro dlouhodobou podporu (LTS), měli byste aktualizovat zdrojový kód aplikace tak, aby běžel v modulu runtime LTS.
Měli byste také vědět, která hostitelská služba chcete nasadit do nasazené aplikace a do všech služeb Azure, které vaše nasazená aplikace používá.
Kompatibilita mezi prostředími
Jakmile víte, které služby a sady SDK Azure vaše aplikace používá, ujistěte se, že všechna prostředí aplikace můžou sestavovat a spouštět stejnou verzi Node.js:
- místní vývojové prostředí nebo vývojový kontejner
- Prostředí procesu CI/CD
- Modul runtime hostitele aplikace
- Azure SDK
Vysvětlení problémů souvisejících s používáním různých verzí ve vašem prostředí najdete v tématu Problémy s kompatibilitou.
Hostitelské služby
Při použití hostitelských služeb Azure můžete vybrat, jestli chcete nasadit kontejner na hostitelskou službu, nebo vybrat verzi Node.js jako runtime pro hostitelskou službu. V obou případech je potřeba zarovnat verzi modulu runtime, kód aplikace a závislosti, jako jsou sady Sdk Azure.
Informace o modulu runtime najdete pomocí následující tabulky:
Služba
Informace o verzi
Pro běhová prostředí Linuxu. Můžete také spustit následující příkaz Azure CLI a zobrazit všechny podporované verze.
az webapp list-runtimes | grep node
Nové projekty by měly používat nejnovější programovací model.
Existují dva různé moduly runtime, které je potřeba vzít v úvahu: front-end a rozhraní API, pokud hostujete rozhraní API ve Static Web Apps.
rozhraní příkazového řádku SWA
Rozhraní příkazového řádku SWA poskytuje funkce vývojového prostředí, včetně proxy serveru, ověřování a dalších konfigurací.
Sady Azure SDK
SDK pro Azure vyžadují verze Node.js LTS, jak je uvedeno v zásadách podpory . Může existovat krátké časové období, kdy se verze LTS podporované hostitelským prostředím a sady SDK neshodují, protože ověření nových verzí LTS Node.js chvíli trvá. Vzhledem k tomu, že existují obvykle tři verze Node.js označené jako verze dlouhodobé podpory, můžete obvykle cílit na střední verzi. Tento cíl vám umožní nějakou dobu otestovat a ověřit, že se vaše aplikace může přesunout na další verzi LTS.
Správa více verzí Node.js
Pokud potřebujete spravovat více než jednu verzi Node.js v místním a vzdáleném prostředí, doporučujeme:
- Development Containers: Použijte kontejner se specifickou verzí Node.js. Pomocí kontejnerů můžete spravovat verzi Node.js napříč několika prostředími. Rozšíření editoru Visual Studio Code Remote – Containers tento proces zjednodušuje.
NVM (Node Version Manager): Rozhraní příkazového řádku pro nastavení nebo změnu vaší místní verze Node.js.
Stáhněte a nainstalujte Node.js podle zamýšleného použití
Na základě vašich požadavků si můžete stáhnout a nainstalovat Node.js.
Problémy s kompatibilitou
Tady je několik běžných kategorií problémů s kompatibilitou, ke kterým může dojít, když se Node.js verze neshodují mezi prostředími:
ohrožení zabezpečení: Použití zastaralé verze se známými ohroženími zabezpečení může vaši aplikaci vystavit rizikům zabezpečení.
chyby syntaxe: Aplikace, které používají nejnovější syntaxi JavaScriptu, kterou starší verze Node.js nepodporují, můžou způsobit chyby syntaxe. Tyto chyby brání spuštění aplikace.
zastaralé rozhraní API: Rozhraní API, která jsou v novějších verzích Node.js zastaralá, můžou být stále ve starších verzích, což vede k neočekávaným chybám chování nebo chybám za běhu, pokud nejsou verze zarovnané.
snížení výkonu: Novější verze Node.js často zahrnují vylepšení výkonu. Spuštění aplikace ve starší verzi může mít za následek pomalejší spouštění a snížení výkonu.
nekonzistentní chování: Rozdíly v tom, jak Node.js verze zpracovávají určité operace, jako je zpracování vyrovnávací paměti, chování smyčky událostí nebo řešení modulů, můžou vést k nekonzistentnímu chování v různých prostředích.
Konflikty závislostí: Node.js moduly nebo balíčky kompatibilní s jednou verzí Node.js nemusí být kompatibilní s jinou, což způsobuje konflikty závislostí a běhové chyby.
selhání sestavení: Kanály CI/CD používající jinou verzi Node.js než místní vývojové prostředí můžou vést k selháním sestavení, což způsobuje zpoždění procesu vývoje a vydávání.
Tím, že zajistíte, aby všechna prostředí používala stejnou verzi Node.js, můžete tyto problémy s kompatibilitou zmírnit a zajistit plynulejší proces vývoje a nasazení.