Cómo instalo el paquete.dependencias json en el directorio actual usando npm
Tengo una aplicación web: fooapp. Tengo un package.json
en la raíz. Quiero instalar todas las dependencias en un node_modules directory
específico. ¿Cómo hago esto?
Lo que quiero
Digamos que tengo dos widget
dependencias. Quiero terminar con una estructura de directorios como esta:
node_modules/
widgetA
widgetB
fooapp/
package.js
lib
..
Lo que consigo
Cuando corro npm install fooapp/
obtengo esto:
node_modules/
fooapp/
node_modules/
widgetA
widgetB
package.js
lib/
..
fooapp/
package.js
lib/
..
Npm hace una copia del directorio de mi aplicación en el directorio node_modules e instala los paquetes dentro de otro directorio node_modules.
Entiendo que esto tiene sentido para instalar un paquete. Pero yo no require()
mi aplicación web dentro de otra cosa, la corro directamente. Estoy buscando una forma sencilla de instalar mis dependencias en un directorio node_modules específico.
2 answers
Corriendo:
npm install
Desde el directorio de la aplicación (es decir, donde el paquete.json se encuentra) instalará las dependencias para su aplicación, en lugar de instalarla como un módulo, como se describe aquí. Estos serán colocados ./ node_modules relativo a su paquete.archivo json (en realidad es un poco más complejo que esto, así que revisa los documentos de npm aquí).
Usted es libre de mover el directorio node_modules al directorio padre de su aplicación si lo desea, porque el nodo el mecanismo 'requerir' entiende esto. Sin embargo, si desea actualizar las dependencias de su aplicación con install/update, npm no verá el 'node_modules' reubicado y en su lugar creará un nuevo directorio, de nuevo relativo al paquete.json.
Para evitar esto, simplemente crea un enlace simbólico a los node_modules reubicados desde el directorio de tu app:
ln -s ../node_modules node_modules
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-03 13:53:08
En mi caso tengo que hacer
sudo npm install
Mi proyecto está dentro de /var/www, así que también necesito establecer los permisos adecuados.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-06 00:23:40