¿Hay alguna forma de mover el directorio node_modules en una aplicación para decir / vendor / node_modules como lo hace bower con el archivo bowerrc? Pensé que podría especificarse en package.json pero parece que no puedo encontrar una solución. Su ayuda es muy apreciada.
96
node_modules
adentropackage.json
, y la respuesta de xShirase simplemente no proporciona una forma de hacerlo.Respuestas:
sí, puede, simplemente configure la variable env NODE_PATH:
export NODE_PATH='yourdir'/node_modules
Según el doc:
Fuente
fuente
process.env
En resumen: no es posible y, como parece, nunca será compatible (consulte aquí https://github.com/npm/npm/issues/775 ).
Hay algunas soluciones hacky con el uso de CLI o ENV-Variables (ver la respuesta seleccionada actual), .npmrc-Config-Files o
npm link
- lo que todos tienen en común: nunca son solo específicos del proyecto, sino siempre de algún tipo deglobal
Soluciones.Para mí, ninguna de esas soluciones es realmente limpia porque los colaboradores de su proyecto siempre necesitan crear alguna configuración especial o tener algún conocimiento especial; no pueden simplemente
npm install
y funciona.Entonces: O tendrá que colocar su package.json en el mismo directorio donde desea que se instalen sus node_modules, o vivir con el hecho de que siempre estarán en el directorio raíz de su proyecto.
fuente
Yarn admite esta característica:
# .yarnrc file in project root --modules-folder /node_modules
Pero su experiencia puede variar según los paquetes que utilice. No estoy seguro de que quieras entrar en esa madriguera del conejo.
fuente
No estoy seguro de si esto es lo que tenía en mente, pero terminé con esta pregunta porque no pude instalar
node_modules
dentro de mi directorio de proyecto ya que estaba montado en un sistema de archivos que no admitía enlaces simbólicos (una carpeta VM "compartida" ).Encontré la siguiente solución:
package.json
archivo a una carpeta temporal en un sistema de archivos diferentenpm install
allínode_modules
directorio resultante de nuevo en el directorio del proyecto, utilizandocp -r --dereference
para expandir los enlaces simbólicos en copias.Espero que esto ayude a alguien más que termine con esta pregunta cuando busque una forma de moverse
node_modules
a un sistema de archivos diferente.Otras opciones
Hay otra solución, que encontré en el problema de github al que @Charminbear se vinculó , pero esto no funciona
grunt
porque no es compatibleNODE_PATH
con https://github.com/browserify/resolve/issues/136 :fuente