Estoy aprendiendo nodejs por el momento en Windows. Varios módulos se instalan globalmente con npm.cmd, y nodejs no pudo encontrar los módulos instalados. Tome jade por ejemplo,
npm install jade -g
Jade está instalado en el directorio "C:\Program Files (x86)\nodejs\node_modules"
, pero el siguiente código fallará con un error "Cannot find module 'jade'"
,
var jade = require('jade');
Sin embargo, el código se ejecutará correctamente cuando jade esté instalado localmente (sin la opción -g en npm). No quiero usar módulos instalados localmente, es un desperdicio de espacio en disco para mí, ¿alguien me puede ayudar a hacer que los módulos instalados globalmente funcionen en Windows?
Agregue una variable de entorno llamada NODE_PATH
y NODE_PATH
en %USERPROFILE%\Application Data\npm\node_modules
(Windows XP), %AppData%\npm\node_modules
(Windows 7/8/10), o donde npm termine instalando los módulos en su sabor de Windows. Para terminar con esto de una vez, agregue esto como una variable del sistema en la pestaña Avanzado del cuadro de diálogo Propiedades del sistema (ejecute control.exe sysdm.cpl,System,3
).
La solución rápida en Windows 7+ es simplemente ejecutar:
rem for future setx NODE_PATH %AppData%\npm\node_modules rem for current session set NODE_PATH=%AppData%\npm\node_modules
Vale la pena mencionar que NODE_PATH
solo se usa al importar módulos en aplicaciones Node. Cuando desee utilizar los binarios de los módulos instalados globalmente en su CLI, deberá agregarlos también a su PATH
, pero sin la parte node_modules
(por ejemplo, %AppData%\npm
en Windows 7/8/10).
Vieja historia
Soy bastante nuevo en node.js, así que no puedo estar del todo en lo cierto, pero según mi experiencia, funciona de la siguiente manera:
Consulte una pregunta similar para obtener más información: ¿cómo instalo un módulo globalmente usando npm?
si se encuentra en la plataforma de windows7, quizás deba cambiar NODE_PATH de la siguiente manera: %AppData%\npm\node_modules
Sé que puedo despertar a un zombie, pero creo que esto sigue siendo un problema, si necesita acceso global a los módulos de nodo en Windows 7, necesita agregar esto a su ruta de variable global:
C:\Users\{USER}\AppData\Roaming\npm
Importante: solo esto sin la parte node_modules
, me tomó media hora para ver esto.
Para hacerlo funcionar en Windows 10, lo resolví agregando la carpeta %USERPROFILE%\AppData\Roaming\npm
a mi RUTA. Tener \node_modules
anexados así: %USERPROFILE%\AppData\Roaming\npm\node_modules\
no funcionó para mí.
Voy a citar de la publicación de blog de este nodo …
En general, la regla de oro es:
- Si está instalando algo que desea usar en su progtwig, utilizando require (‘whatever’), entonces instálelo localmente en la raíz de su proyecto.
- Si está instalando algo que desea usar en su shell, en la línea de comandos o algo así, instálelo globalmente, de modo que sus binarios terminen en su variable de entorno PATH.
…
Por supuesto, hay algunos casos en los que desea hacer ambas cosas. Coffee-script y Express son buenos ejemplos de aplicaciones que tienen una interfaz de línea de comando, así como una biblioteca. En esos casos, puede hacer una de las siguientes cosas:
- Instálalo en ambos lugares. En serio, ¿tienes poco espacio en el disco? Está bien, de verdad. Son pequeños progtwigs de JavaScript.
- Instálelo globalmente, y luego npm enlace coffee-script o npm link express (si está en una plataforma que admite enlaces simbólicos). Luego, solo necesita actualizar la copia global para actualizar también todos los enlaces simbólicos.
Para hacerlo breve, use npm link jade
en el directorio de su aplicación.
Intenté agregar / editar variables de entorno y llegar a la conclusión de que:
User variables
(del cuadro superior) en lugar de System variables
del System variables
(de la parte inferior); de lo contrario, debe “ejecutar como administrador” para que funcione. ;%AppData%\npm
a Path
para usarlo como una herramienta de línea de comandos (si es compatible, como jshint
y grunt-cli
). NODE_PATH
y NODE_PATH
%AppData%\npm\node_modules
para require('')
en los scripts sin instalarlo en el directorio del proyecto. (Pero se npm link
para este requisito si está trabajando en un sistema operativo con mklink
como Vista y mklink
más recientes). Entorno de prueba:
Me encontré con este problema en Windows 7, corriendo
npm install -g gulp
como administrador mientras se inicia sesión como un usuario normal.
Solución: al ejecutar la misma instalación que el usuario normal (no “ejecutar como administrador” para cmd) todo estaba bien. Supongo que está relacionado con la instalación predeterminada y la ruta de búsqueda.
Me ha costado mucho conseguir que los módulos globales funcionen. Eventualmente, agregué explícitamente C:\Users\yourusername\AppData\Roaming\npm
a la variable PATH en Variables del sistema. También necesitaba tener esta variable antes de la variable de ruta del nodojs en la lista.
Estoy ejecutando Windows 10.
Desde mi experiencia con win8.1 npm instala módulos en C:\Users\[UserName]\AppData\Roaming\npm\node_modules
pero los busca dumply en C:\Users\[UserName]\node_modules
.
Un módulo de referencia de solución simple en la aplicación por ruta completa:
var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");
Para Windows, todo el mundo dice que debe establecer variables de entorno para los módulos nodejs y npm, pero ¿sabe por qué? Para algunos módulos, tienen una herramienta de línea de comandos, después de instalar el módulo, hay un archivo .cmd [module] en C: \ Program Files \ nodejs , y se usa para ejecutarlo en el comando window. Por lo tanto, si no agrega la ruta que contiene el archivo cmd a las variables de entorno % PATH% , no podrá iniciarlas correctamente a través de la ventana de comandos.
Alternativamente, podría agregar al ~/.npmrc
prefijo derecho. Tengo C:\Program Files\nodejs
para 64 Win7.
Me encontré con esta pregunta porque quiero usar node.js con visual studio 2015 en mi nueva computadora con Windows 10. Utilicé node.js en Windows 7 y 8 y 8.1. Nunca es un problema que node.js encuentre un módulo. Utilizo un nodo heredado .js 0.10.39 porque tengo que usar esta versión debido a la serie y al módulo RFXCOM.
La respuesta para Windows 10 es establecer NODE_PATH en las variables de entorno con C: \ Users \ User \ node_modules.
Para Windows 10, tuve que instalar gulp localmente en la carpeta:
C: \ Users \ myaccount \ AppData \ Roaming \ npm \ node_modules
npm install gulp
Esto solucionó mi problema de “gulp no reconocido”
Tuve el mismo problema al intentar instalar npm install -g bower
con npm install -g bower
Creo que esto fue porque el nodo fue instalado por otro usuario , no por mí.
Desinstalé el nodo y luego lo reinstalé. Durante la instalación, vi este texto para la opción Agregar a módulos PATH> npm :
Mensaje en la instalación del nodo
Después de la instalación del nodo, npm install -g bower
nuevamente. Y ahora Bower funciona.
Claro que no es necesario volver a instalar el nodo con el usuario, como yo. La solución debe ser a través de las rutas NODE_PATH o PATH , como han explicado otros usuarios.
Esto es solo para señalar que este problema ocurre solo si el nodo ha sido instalado por otro usuario (o si durante la instalación no se ha marcado la opción Agregar a PATH> módulos npm ).
Simplemente descarga y reinstala el nodo desde aquí y esto solucionará todos los problemas de ruta.
No olvide reiniciar su símbolo del sistema o terminal.
si está usando Windows, toma algunos pasos, 1) crear un archivo llamado package.json
{ "name": "hello" , "version": "0.0.1" , "dependencies": { "express": "*" } }
donde hola es el nombre del paquete y * significa la última versión de su dependencia
2) codifica tu directorio de proyecto y ejecuta el siguiente comando
npm instalar
Instala las dependencias