node.js - example - npm link para que sirve
Diferencia entre `npm link x` y` npm install/path/to/x` (2)
Así que este artículo realmente parece dejarlo al descubierto: https://medium.com/@the1mills/how-to-test-your-npm-module-without-publishing-it-every-5-minutes-1c4cb4b369be
Dice que la diferencia entre npm link x
y npm install /local/path/to/x
es:
La gran diferencia es que
npm install /local/path/x
ejecutará losnpm link x
preinstalación / postinstall, peronpm link x
no lo hará.npm link
utiliza el espacio NPM global,npm install /local/path/x
no. npm link crea un enlace simbólico a x en el espacio global, y luego, cuando llama a npm link x desde y, crea un enlace simbólico no directamente a x, sino al enlace simbólico global. Esta es una diferencia importante si está utilizando diferentes versiones de node.js global, por ejemplo, NVM.npm install /absolute/path/x
alterará package.json,npm link x
no lo hace.
para obtener una copia local nueva en lugar de un enlace simbólico, use el npm pack
, así:
tgz="$PWD/$(npm pack)"
cd <other project>
npm install "$tgz"
También podrías usar cp / rsync, pero eso no ejecutaría los ganchos de instalación, o pondría los ejecutables en node_modules/.bin
... eso hará el cerdo.
Pensé que entendía la diferencia entre
npm link x
y
npm install /local/path/to/x
originalmente pensé que el primero creó un enlace simbólico a x, mientras que el último instaló una copia separada de x en su proyecto, en lugar de simularlo.
Sin embargo, hace poco noté que mi impresión original era incorrecta, y ambos parecen usar enlaces simbólicos, así que ¿hay alguna diferencia entre los dos y cuál es?
enlace de npm
npm link
npm link <folder>
Ambos comandos anteriores crearán un enlace simbólico de la <folder>
en los paquetes globales.
Ahora npm link <folder>
hará un enlace simbólico en su carpeta node_modules
también para su proyecto actual. Y estos nombres se basarían en el nombre del proyecto en package.json
y no en el nombre de la carpeta que está vinculando
El package.json
de su proyecto actual no será tocado o alterado
Las dependencias del paquete aún se instalarán como puede ver en el código aquí
Así que para resumir
- Crea un enlace simbólico en la carpeta global (siempre)
- No altera el paquete.
- Se instala cualquiera de las dependencias faltantes.
npm instalar
Ahora npm install <folder>
es un poco diferente a esto
- No crea un enlace simbólico en la carpeta global
- Altera y agrega la referencia a package.json
- Crea un enlace simbólico a la carpeta original