De juiste Node.js-versie voor Azure kiezen
Bij het ontwikkelen van JavaScript-toepassingen voor Azure is het essentieel om de versies van Node.js in uw lokale ontwikkelomgeving en hostruntime-omgeving uit te lijnen. Deze versie-uitlijning zorgt voor compatibiliteit, vermindert de kans op runtimefouten en maakt gebruik van de volledige mogelijkheden van het Azure-platform. In dit artikel leert u hoe u de juiste Node.js versie voor uw door Azure gehoste toepassingen en services selecteert.
Node.js versies
Node.js volgt een voorspelbaar releaseschema dat zowel LTS(Long Term Support) als Huidige releases bevat. LTS-versies worden aangewezen voor langdurig onderhoud en stabiliteit, waardoor ze ideaal zijn voor productieomgevingen. Deze versies ontvangen kritieke bugfixes, beveiligingsupdates en prestatieverbeteringen gedurende een langere periode, meestal 30 maanden. Node.js gebruikt een even/oneven nummeringssysteem om onderscheid te maken tussen LTS en Huidige releases: even genummerde versies (bijvoorbeeld 18, 20) zijn LTS-releases, terwijl oneven versies (bijvoorbeeld 19, 21) huidige releases zijn. Huidige releases bevatten de nieuwste functies en verbeteringen, maar worden pas zes maanden ondersteund, waarna ze overstappen op een LTS-release als ze even zijn genummerd.
Gebruik huidige releases niet in productie omdat het venster van zes maanden onjuist kan worden afgestemd op runtimes en SDK's van het Azure-hostingplatform. Je merkt dat de ontwikkelcontainers voor Node.js geen oneven genummerde/actuele versies beschikbaar stellen.
Voorwaarden
Alle Azure SDKS- en hostingservices gebruiken LTS-versies van Node.js. Als uw toepassingscode wordt uitgevoerd in een eerdere versie van Node.js, niet meer beschikbaar is voor langetermijnondersteuning (LTS), moet u de broncode van uw toepassing bijwerken om te worden uitgevoerd in een LTS-runtime.
U moet ook weten welke hostingservice u wilt implementeren en welke Azure-services uw geïmplementeerde toepassing gebruikt.
Compatibiliteit tussen omgevingen
Zodra u weet welke Azure-services en SDK's uw toepassing gebruikt, moet u ervoor zorgen dat alle omgevingen voor de toepassing dezelfde versie van Node.jskunnen bouwen en uitvoeren:
- lokale ontwikkelomgeving of ontwikkelingscontainer
- CI/CD-procesomgeving
- Runtime van applicatiehost
- Azure SDK's
Zie Compatibiliteitsproblemenvoor een uitleg van problemen met betrekking tot het gebruik van verschillende versies in uw omgeving.
Hostingservices
Wanneer u Azure-hostingservices gebruikt, kunt u een container op de host implementeren of een Node.js versie selecteren als runtime voor de host. In beide gevallen moet u de versie van de runtime, de toepassingscode en de afhankelijkheden, zoals de Azure SDK's, uitlijnen.
Gebruik de volgende tabel om runtime-informatie te vinden:
Dienst
versiegegevens
Voor Linux-runtimes. U kunt ook de volgende Azure CLI-opdracht uitvoeren om alle ondersteunde versies te bekijken.
az webapp list-runtimes | grep node
Voor nieuwe projecten moet het meest recente programmeermodel worden gebruikt.
Er zijn twee verschillende runtimes die u moet overwegen: de front-end en de API als u uw API host in Static Web Apps.
De SWA CLI biedt functionaliteit voor de ontwikkelomgeving, waaronder proxy, verificatie en andere configuraties.
Azure SDK's
Voor de Azure SDK's zijn Node.js LTS-versies vereist, zoals vermeld in het ondersteuningsbeleid. Er kan een korte periode zijn wanneer de LTS-versies die worden ondersteund door de hostingomgeving en de SDK's niet overeenkomen, omdat het even duurt om nieuwe Node.js LTS-versies te verifiëren. Omdat er meestal drie versies van Node.js gemarkeerd als langetermijnondersteuningsversies, kunt u zich meestal richten op de middelste versie. Met dit doel kunt u enige tijd testen en controleren of uw toepassing kan worden verplaatst naar de volgende LTS-versie.
Meerdere versies van Node.js beheren
Als u meer dan één versie van Node.js in uw lokale en externe omgevingen wilt beheren, raden we u aan:
- Development Containers: Gebruik een container met een specifieke Node.js-versie. U kunt de versie van Node.js in verschillende omgevingen beheren met behulp van containers. De extensie Remote - Containers van Visual Studio Code vereenvoudigt dit proces.
- NVM (Node Version Manager): een opdrachtregelinterface om uw lokale versie van Node.jsin te stellen of over te schakelen.
Download en installeer Node.js op basis van uw beoogde gebruik
U kunt Node.js downloaden en installeren op basis van uw vereisten.
Compatibiliteitsproblemen
Hier volgen enkele veelvoorkomende compatibiliteitsproblemen die zich kunnen voordoen wanneer Node.js versies niet overeenkomen tussen omgevingen:
beveiligingsproblemen: als u een verouderde versie met bekende beveiligingsproblemen gebruikt, kan uw toepassing blootstellen aan beveiligingsrisico's.
syntaxisfouten: toepassingen die gebruikmaken van de meest recente JavaScript-syntaxis, niet ondersteund door oudere Node.js versies, kunnen syntaxisfouten veroorzaken. Deze fouten verhinderen dat de toepassing wordt uitgevoerd.
afgeschafte API's: API's die zijn afgeschaft in nieuwere Node.js versies, kunnen nog steeds aanwezig zijn in oudere versies, wat leidt tot onverwacht gedrag of runtimefouten als de versies niet zijn uitgelijnd.
Performance Degradation: nieuwere Node.js versies bevatten vaak prestatieverbeteringen. Het uitvoeren van uw toepassing op een oudere versie kan leiden tot tragere uitvoeringstijden en verminderde prestaties.
inconsistent gedrag: verschillen in de manier waarop Node.js versies bepaalde bewerkingen verwerken, zoals bufferafhandeling, gedrag van gebeurtenislussen of moduleresolutie, kunnen leiden tot inconsistent gedrag tussen omgevingen.
Afhankelijkheidsconflicten: Node.js modules of pakketten die compatibel zijn met één versie van Node.js mogelijk niet compatibel zijn met een andere, waardoor afhankelijkheidsconflicten en runtimefouten optreden.
buildfouten: CI/CD-pijplijnen met een andere Node.js versie dan de lokale ontwikkelomgeving kunnen leiden tot buildfouten, wat vertragingen in het ontwikkelings- en releaseproces veroorzaakt.
Door ervoor te zorgen dat alle omgevingen dezelfde versie van Node.jsgebruiken, kunt u deze compatibiliteitsproblemen beperken en zorgen voor een soepeler ontwikkeling en implementatieproces.