Respuestas:
Puedes usar la --prefixopción:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
Los paquetes se instalarán en ./install/here/node_modules. El mkdires necesario ya que de lo contrario la NGP podría elegir una ya existente node_modulesdirectorio de más arriba en la jerarquía. (Ver documentación de npm en las carpetas ).
npm install(sin el nombre del paquete)? Lancé esto directamente, pero luego npm busca package.jsonen el {prefix}. Lo que también pretendo es ser capaz de permitir la packages.jsonraíz del proyecto y al mismo tiempo instalar todos los paquetes {project root}/{project webroot}.
npm install, pero --prefixparece una mejor solución, si no estaba causando una recurrencia.
En la documentación se indica: Use la opción de prefijo junto con la opción global :
La configuración del prefijo por defecto es 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 generalmente se instala en {prefix} / bin / node en lugar de {prefix} /node.exe .
Cuando se establece el indicador global , npm instala cosas en este prefijo. Cuando no está configurado, usa la raíz del paquete actual, o el directorio de trabajo actual si no está en un paquete ya.
(Énfasis por ellos)
Entonces, en su directorio raíz, puede instalar con
npm install --prefix <path/to/prefix_folder> -g
e instalará la node_modulescarpeta en la carpeta
<path/to/prefix_folder>/lib/node_modules
requireinstalar paquetes globalmente, ¿verdad?
A partir de npm versión 3.8.6, puede usar
npm install --prefix ./install/here <package>
para instalar en el directorio especificado. NPM crea automáticamente una node_modulescarpeta incluso cuando node_modulesya existe un directorio en la jerarquía superior. También puede tener un package.jsonen el directorio actual y luego instalarlo en el directorio especificado usando la --prefixopción:
npm install --prefix ./install/here
A partir de npm 6.0.0, puede usar
npm install --prefix ./install/here ./
instalar el package.json en el directorio actual al directorio "./install/here". Hay una cosa que noté 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 de la --prefixopción. Se resuelve según la documentación de npm en las carpetas , solo cuando npm installse usa sin la --prefixopción.
Can't install <current directory>: Missing package name
package.jsonarchivo./install/here