¿Cómo instalar npm en un directorio especificado?


Es posible especificar un directorio de destino cuando se ejecuta npm install <package>?

 175
Author: coudy, 2013-01-23

3 answers

Puede usar la opción --prefix:

mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>

El paquete(s) se instalará (n) en ./install/here/node_modules. El mkdir es necesario ya que npm podría de otra manera elegir un directorio node_modules ya existente más arriba en la jerarquía. (Véase la documentación de npm en las carpetas.)

 228
Author: coudy,
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-19 22:20:44

En la documentación se indica: Utilice la opción de prefijo junto con la opción global :

El prefijo config por defecto es la ubicación donde está instalado el nodo. En la mayoría de los sistemas, esto es /usr/local. En Windows, este es el exacto ubicación del nodo.exe binario. En sistemas Unix, es un nivel más alto, dado que node normalmente se instala en {prefix}/bin / node en lugar de {prefijo}/nodo.exe .

Cuando el la bandera global está establecida, npm instala cosas en este prefijo. Cuando no está establecido, utiliza la raíz del paquete actual, o el directorio de trabajo actual si no está en un paquete ya.

(Énfasis por ellos)

Así que en su directorio raíz podría instalar con

npm install --prefix <path/to/prefix_folder> -g

E instalará la carpeta node_modules en la carpeta

<path/to/prefix_folder>/lib/node_modules
 30
Author: HerrSerker,
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
2017-04-26 07:40:42

A partir de la versión 3.8.6 de npm, puede usar

npm install --prefix ./install/here <package>

Para instalar en el directorio especificado. NPM crea automáticamente la carpeta node_modules incluso cuando ya existe un directorio node_modules en la jerarquía superior. También puede tener un package.json en el directorio actual y luego instalarlo en el directorio especificado usando la opción --prefix:

npm install --prefix ./install/here

A partir de npm 6.0.0, puede utilizar

npm install --prefix ./install/here ./

Para instalar el paquete.json in current directory to "(en inglés)./install / here" directorio. Hay uno cosa que he notado en Mac que crea un enlace simbólico a la carpeta padre dentro del directorio node_modules. Pero, todavía funciona.

NOTA: NPM respeta la ruta que ha especificado a través de la opción --prefix. Se resuelve según la documentación de npm en las carpetas, solo cuando npm install se usa sin la opción --prefix.

 19
Author: Rohit Sharma,
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
2018-05-03 08:07:38