npm: ¿instalar dependencias para un paquete en una carpeta diferente?

142

Tengo la siguiente estructura de directorios:

/some_project
    source.js
    package.json

Me gustaría instalar las dependencias para some_project. Sé que podría cd en algún_proyecto y luego ejecutar npm install

Pero me preguntaba si es posible sin cambiar el directorio? Algo como

npm install some_project/package.json 
Florín
fuente

Respuestas:

344

Puede usar la npm install <folder>variante con la --prefixopción. En su escenario, la carpeta y el prefijo serán los mismos:

npm --prefix ./some_project install ./some_project
coudy
fuente
44
Esta es la verdadera respuesta a la pregunta. Gracias @coudy
G. Ghez
55
Por cierto, crea una etccarpeta vacía en el destino, es un error conocido github.com/npm/npm/pull/7249
Michael Radionov
8
Gracias por esta respuesta ¿Hay más claridad sobre si ./some_projectse requiere el segundo ?
Aron
12
el segundo ./some_projectno es obligatorio
JRJurman
44
Esto no parece funcionar para mí en Windows 10. Instala las dependencias en el directorio actual y simplemente coloca un enlace simbólico en la subcarpeta.
Herohtar
45

Actualización: dado que --prefixexiste la opción, ahora voto por la respuesta de @ coudy a esta pregunta. Respuesta original a continuación:

No, npmsiempre se instalará en el directorio actual o, con -g, en todo el sistema node_modules. Sin embargo, puede lograr esto con una subshell, que no afectará su directorio actual:

(cd some_project && npm install)

El paréntesis hace que se ejecute en una subshell .

Linus Thiel
fuente
Finalmente, esto es lo que hice: cd some_project && npm install. Gracias
Florin
1
¿Hay un equivalente de esto para Windows?
Meligy
@Meligy que puedes usarSTART /D "%my_dir%" /I /WAIT npm install
Everspace
1

En Windows 10 no pude ir --prefixa trabajar, así que tuve que cdejecutarlo.

cd PATH_TO_FOLDER && npm install 
Yoannes Geissler
fuente