deployment - scripts - ¿Cómo instalo las dependencias de package.json en el directorio actual usando npm?
package.json que es (2)
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 dependencias de widget
. Quiero terminar con una estructura de directorios como esta:
node_modules/
widgetA
widgetB
fooapp/
package.js
lib
..
Lo que consigo
cuando ejecuto npm install fooapp/
obtengo esto:
node_modules/
fooapp/
node_modules/
widgetA
widgetB
package.js
lib/
..
fooapp/
package.js
lib/
..
npm hace una copia de mi directorio de aplicaciones 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 no require()
mi aplicación web dentro de otra cosa, la ejecuto directamente. Estoy buscando una manera simple de instalar mis dependencias en un directorio node_modules específico.
Corriendo:
npm install
desde dentro del directorio de su aplicación (es decir, donde se encuentra package.json) instalará las dependencias para su aplicación, en lugar de instalarlo como un módulo, como se describe aquí . Estos se colocarán en ./node_modules relativo a su archivo package.json (en realidad es un poco más complejo que este, así que consulte los documentos npm aquí ).
Si lo desea, puede mover el directorio node_modules al directorio padre de su aplicación, porque el mecanismo ''require'' del nodo entiende esto. Sin embargo, si desea actualizar las dependencias de su aplicación con la instalación / actualización, npm no verá los ''node_modules'' reubicados y en su lugar creará un nuevo directorio, nuevamente en relación con package.json.
Para evitar esto, solo crea un enlace simbólico a los node_modules reubicados desde el directorio de tu aplicación:
ln -s ../node_modules node_modules
En mi caso, necesito hacer
sudo npm install
mi proyecto está dentro de / var / www, así que también necesito configurar los permisos adecuados.