¿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_modulesadentropackage.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_modulesSegún el doc:
Fuente
fuente
process.envEn 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 deglobalSoluciones.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 instally 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_modulesPero 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_modulesdentro 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.jsonarchivo a una carpeta temporal en un sistema de archivos diferentenpm installallínode_modulesdirectorio resultante de nuevo en el directorio del proyecto, utilizandocp -r --dereferencepara 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_modulesa 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
gruntporque no es compatibleNODE_PATHcon https://github.com/browserify/resolve/issues/136 :fuente