Solución:
Puedes usar el --prefix
opción:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
A continuación, los paquetes se instalarán en ./install/here/node_modules
. los mkdir
es necesario ya que, de lo contrario, npm podría elegir un node_modules
directorio más arriba en la jerarquía. (Consulte la documentación de npm sobre carpetas).
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 node_modules
carpeta incluso cuando un node_modules
El directorio ya existe en la jerarquía superior. También puede tener un package.json
en el directorio actual y luego instálelo en el directorio especificado usando --prefix
opción:
npm install --prefix ./install/here
A partir de npm 6.0.0, puede usar
npm install --prefix ./install/here ./
para instalar el package.json en el directorio actual en el directorio “./install/here”. Hay una cosa que he notado en Mac que crea un enlace simbólico a la carpeta principal dentro del directorio node_modules. Pero todavía funciona.
NOTA: NPM respeta la ruta que ha especificado a través del --prefix
opción. Se resuelve según la documentación de npm en carpetas, solo cuando npm install
se utiliza sin el --prefix
opción.
En la documentación se indica: Use la opción de prefijo junto con la opción global:
los prefijo config tiene como valor predeterminado la ubicación donde está instalado el nodo. En la mayoría de los sistemas, esto es / usr / local. En Windows, esta es la ubicación exacta del binario node.exe. En los sistemas Unix, es un nivel superior, ya que el nodo normalmente se instala en {prefijo} / bin / nodo en vez de
{prefix} /node.exe.Cuando el global La bandera está configurada, npm instala cosas en este prefijo. Cuando no está configurado, usa la raíz del paquete actual, o el directorio de trabajo actual si aún no está en un paquete.
(Énfasis de ellos)
Entonces en su directorio raíz podría instalar con
npm install --prefix <path/to/prefix_folder> -g
e instalará el node_modules
carpeta en la carpeta
<path/to/prefix_folder>/lib/node_modules