Node.js Probleemoplossing
Dit document is bedoeld om ontwikkelaars die gebruikmaken van de ServBay lokale ontwikkelomgeving te helpen bij het oplossen van veelvoorkomende problemen die kunnen optreden bij het gebruik van Node.js-pakketten.
Node.js/npm/pnpm/yarn-versies niet gevonden
Wanneer je in ServBay werkt met Node.js, npm, pnpm of yarn, en je krijgt een foutmelding zoals hieronder, betekent dit dat het systeem het specifieke Node.js-uitvoerbare bestand dat je probeert te gebruiken niet kan vinden:
bash
Warning: Specified Node.js version '22' for 'node' not found.
If this is not your intention, please delete the 'NODE_VERSION' configuration
from the '.servbay.config' file in the current directory.
1
2
3
2
3
Dit gebeurt meestal omdat de specifieke Node.js-versie die je wilt gebruiken nog niet in ServBay is geïnstalleerd, of omdat je gebruik wilt maken van een Node.js-versie die je via tools als nvm
of homebrew
hebt geïnstalleerd, maar ServBay deze vanwege een foutieve omgevingsconfiguratie niet kan vinden.
Tip
Na installatie van ServBay configureert het systeem script-aliases om ervoor te zorgen dat de Node.js-pakketten die door ServBay zijn geïnstalleerd met voorrang worden gebruikt. Wanneer een opgegeven versie in ServBay niet beschikbaar is, probeert het systeem eerst terug te vallen op de standaardversie die door nvm
is geïnstalleerd, vervolgens op de versie die via homebrew
is geïnstalleerd. Als op geen van deze locaties een geschikte versie wordt gevonden, krijg je bovenstaande foutmelding.
Oorzaakanalyse:
- De gewenste Node.js-versie is niet geïnstalleerd via de ServBay-app.
- Je hebt
nvm
ofhomebrew
geïnstalleerd en verwacht hun Node.js-versies te kunnen gebruiken, maar doordat de shell-omgevingsvariabelen (vooralPATH
enNVM_BIN
) niet goed staan ingesteld, kan ServBay deze externe installaties niet benaderen.
Oplossingen:
Als je nvm
hebt geïnstalleerd en daarmee een Node.js-versie hebt toegevoegd, maar deze foutmelding blijft ontvangen, is een veelvoorkomende reden dat de omgevingsvariabele NVM_BIN
ontbreekt of onjuist is geconfigureerd in je shell-configuratie. nvm
hoort deze variabele automatisch in te stellen bij correcte installatie; deze verwijst naar de locatie van de via nvm
geïnstalleerde uitvoerbare Node.js-bestanden en is essentieel voor het functioneren van nvm
.
Controleer en herstel indien nodig de relevante nvm
-instellingen in je shell-configuratiebestand (zoals ~/.zshrc
, ~/.bash_profile
, enz.), zodat de variabele NVM_BIN
correct is ingesteld en geëxporteerd. Herlaad vervolgens het configuratiebestand (bijvoorbeeld via source ~/.zshrc
of door de terminal opnieuw op te starten). Na deze aanpassing zou ServBay je nvm
-beheerste Node.js-versies correct moeten kunnen vinden.
Als je geen gebruikmaakt van nvm
of homebrew
, of juist de door ServBay beheerde Node.js-versies wilt gebruiken, controleer dan of de gewenste versie daadwerkelijk via het “Pakketten”-overzicht van de ServBay-app is geïnstalleerd.
Foutmelding ‘architectuur niet ondersteund’ bij gebruik van node-sass
of andere npm-pakketten
Voor macOS-gebruikers met een Apple Silicon-chip (M1/M2/M3/M4 of andere Arm64-architecturen) kunnen compatibiliteitsproblemen optreden bij oudere of van native modules afhankelijke npm-pakketten zoals node-sass
. Je krijgt dan bijvoorbeeld een foutmelding als Unsupported architecture (arm64)
. Dit komt doordat oudere pakketten soms enkel binaires of build-configuraties voor de x86_64-architectuur bieden.
bash
ERROR: Module Error (from ./node_modules/sass-loader/dist/cjs.js):
Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Node.js 14.x
For more information on which environments are supported
please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
1
2
3
4
5
2
3
4
5
Oorzaakanalyse:
Sommige npm-pakketten bevatten C++-code of andere native componenten die per CPU-architectuur gecompileerd moeten worden. Oudere versies van deze pakketten ondersteunen vaak geen Arm64-architectuur (zoals Apple Silicon) en bieden daarvoor geen werkende binaries.
Oplossingen:
Gebruik een moderne Arm64-compatibele alternatieve package (aanbevolen):
De beste oplossing is overstappen op een modern, goed ondersteund alternatief dat wél compatibel is met Arm64-chips. Vervang bijvoorbeeld het verouderde en niet langer actief onderhouden
node-sass
-pakket door het beter onderhouden en krachtigeresass
-pakket. De meeste moderne frontendprojecten en toolchains gebruiken inmiddelssass
als standaard.bashnpm uninstall node-sass npm install --save-dev sass
1
2Installeer de x86_64-versie van Node.js binnen ServBay en gebruik Rosetta 2 (niet aanbevolen):
ServBay maakt het mogelijk om de
x86_64
-versie van Node.js te installeren. Op een Apple Silicon Mac kun je deze dan via de ingebouwde Rosetta 2-laag van macOS draaien, zodat ookx86_64
-native modules kunnen werken. Je kunt dex86_64
-variant van Node.js installeren via de “Pakketten”-interface van de ServBay-app.Let op: Deze aanpak wordt niet aanbevolen als permanente oplossing, omdat Rosetta 2 een vertaallaag is die extra systeembronnen kan vragen en mogelijk voor compatibiliteitsproblemen zorgt ten opzichte van een native Arm64-omgeving. Geef altijd de voorkeur aan oplossing 1.