¿Existe una opción para instalar un paquete npm sin dependencias?


21

Estoy intentando modificar un paquete npm con múltiples dependencias. Como tal, npm install -g .lleva mucho tiempo ejecutarlo. ¿Tengo otras opciones además de eliminar las dependencias de packages.json?

Respuestas:




7

Si está desarrollando eso node_moduleusted mismo, no pierda su tiempo con npm installs, en su lugar, úselo npm link.

En resumen, crea un enlace simbólico a la carpeta de su módulo en una carpeta global propiedad de npm, y luego, en la carpeta de su aplicación, le pide a npm que use esa carpeta vinculada simbólica.

Esto hace que los cambios que realice en la carpeta del módulo se reflejen inmediatamente en su aplicación.

Estos son los pasos principales (copiados del tutorial vinculado a continuación, asegúrese de leer el tutorial para los trucos importantes):

  1. cd a src/my_module
  2. Ejecute " npm link". Esto crea un enlace simbólico desde una carpeta global a la src/my_modulecarpeta.
  3. cd a src/my_app
  4. Ejecutar npm link my_module. Estos links node_modules/my_moduleen este proyecto en particular a la carpeta global, por lo que requirelas llamadas en busca de my_moduleviento de hasta cargarlo desde la carpeta de desarrollo, src/my_module.

Vea este tutorial: http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears y los documentos oficiales para npm link: https://docs.npmjs.com/cli/link


No estoy cambiando mi respuesta aceptada, sino votando porque esto es útil para mi caso específico.
Justin Dearing

4

Esta característica se solicitó en 2010, pero desafortunadamente se ignoró y se cerró: https://github.com/npm/npm/issues/340

Probé un montón de opciones y finalmente encontré una solución bastante simple: cambie el nombre de package.json a otra cosa antes de doint npm install, luego vuelva a volver a instalarlo después de que finalice la instalación:

mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json

2
Wow, ¿en serio sigue siendo la única forma? Eso es ridículo, debería haber una bandera --ignore-packageo algo así.
JacobTheDev

2
Esta solución es buena y hasta ahora puede ser la mejor solución para mi pregunta: stackoverflow.com/questions/53532845/…
aGuegu
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.