Solución de problemas con Node.js
Este documento está diseñado para ayudar a los desarrolladores que utilizan el entorno de desarrollo local de ServBay a resolver algunos problemas comunes al trabajar con los paquetes de Node.js.
No se encuentra la versión del comando Node.js/npm/pnpm/yarn
Al utilizar Node.js, npm, pnpm o yarn en ServBay, si ves un error similar al siguiente, significa que el sistema no puede encontrar la versión específica del ejecutable de Node.js que intentas usar:
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
Esto suele deberse a que la versión específica de Node.js que intentas usar aún no está instalada en ServBay, o que deseas emplear una versión de Node.js instalada a través de herramientas como nvm
o homebrew
, pero por problemas de configuración del entorno ServBay no puede encontrarlas correctamente.
Consejo
Tras instalar ServBay, el sistema configura alias de scripts de ServBay para dar prioridad a los paquetes de Node.js instalados por ServBay. Si no se encuentra la versión especificada en ServBay, el sistema intenta utilizar primero la versión predeterminada instalada por nvm
y después la de homebrew
. Si no está disponible en ninguno de estos lugares, se mostrará el error descrito arriba.
Análisis de la causa:
- La versión de Node.js que intentas usar no está instalada dentro de la aplicación ServBay.
- Tienes instalado
nvm
ohomebrew
y esperas usar una versión de Node.js gestionada por ellos, pero debido a una configuración incorrecta del entorno del shell (en especial las variables de entornoPATH
oNVM_BIN
), el mecanismo de fallback de ServBay no puede encontrar la versión externa de Node.js.
Solución:
Si tienes instalado nvm
y ya has instalado una versión de Node.js con él pero sigues encontrando este error, una razón frecuente es que tu configuración del shell carece de la variable de entorno NVM_BIN
o está mal configurada. Al instalarse correctamente, nvm
se encarga de configurar esta variable, que apunta a la carpeta de ejecutables de Node.js gestionados por nvm
— siendo clave para el funcionamiento adecuado de nvm
.
Solo necesitas revisar y corregir la configuración relacionada con nvm
en tus archivos de configuración de shell (como ~/.zshrc
, ~/.bash_profile
, etc.), asegurarte de que la variable NVM_BIN
esté bien definida y exportada y luego recargar la configuración (por ejemplo, ejecutando source ~/.zshrc
o reiniciando la terminal). Una vez corregido, el mecanismo de fallback de ServBay debería encontrar con éxito la versión de Node.js gestionada por nvm
.
Si no usas nvm
ni homebrew
, o deseas emplear la versión de Node.js gestionada por ServBay, asegúrate de tener instalada la versión correspondiente desde la interfaz de “Paquetes” de la aplicación ServBay.
Error de arquitectura no soportada al usar paquetes npm como node-sass
Si eres usuario de macOS con un chip Apple Silicon (M1/M2/M3/M4 – arquitectura Arm64) y utilizas paquetes npm antiguos que dependen de módulos nativos (como node-sass
), es posible que encuentres errores del tipo Unsupported architecture (arm64)
. Esto ocurre porque estos paquetes antiguos solo ofrecen binarios o configuraciones de compilación para arquitecturas x86_64.
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
Análisis de la causa:
Algunos paquetes npm incluyen código nativo (C++, etc.) que debe compilarse para una arquitectura de CPU concreta. Las versiones más antiguas de dichos paquetes pueden no ofrecer binarios o soporte para Arm64 (Apple Silicon).
Soluciones:
Cambiar a alternativas modernas que soporten Arm64 (Recomendado):
La mejor solución es reemplazar estos paquetes antiguos por alternativas modernas que ofrecen soporte total para Arm64. Por ejemplo, sustituye el antiguo y ya no mantenido
node-sass
por el más potente y activamente mantenido paquetesass
. La gran mayoría de las herramientas modernas de frontend ya usansass
.bashnpm uninstall node-sass npm install --save-dev sass
1
2Instalar Node.js para arquitectura x86_64 en ServBay y ejecutar a través de Rosetta 2 (No recomendado):
ServBay te permite instalar paquetes de Node.js para arquitectura
x86_64
. En un Mac Apple Silicon, esto permite ejecutar Node.js y sus módulos nativos x86_64 usando la capa de traducción Rosetta 2 de macOS. Puedes instalar el Node.js parax86_64
desde la interfaz de “Paquetes” de la aplicación ServBay.Ten en cuenta: Esto no se recomienda como solución a largo plazo, ya que depende de la emulación por Rosetta 2, lo que puede impactar el rendimiento y provocar problemas de compatibilidad frente al entorno Arm64 nativo. Prioriza la primera alternativa siempre que sea posible.