javascript - bootstrap - ¿Instalar un módulo local usando npm?
npm bodyparser (4)
Dado que fue preguntado y respondido por la misma persona, agregaré un enlace de npm como alternativa.
desde docs:
Esto es útil para instalar tus propias cosas, para que puedas trabajar en ellas y probarlas de forma iterativa sin tener que reconstruirlas continuamente.
cd ~/projects/node-bloggy # go into the dir of your main project
npm link ../node-redis # link the dir of your dependency
[Editar] A partir de NPM 2.0, puede declarar dependencias locales en package.json
"dependencies": {
"bar": "file:../foo/bar"
}
Tengo un módulo de descarga descargado, ¿quiero instalarlo localmente, no globalmente en otro directorio?
¿Qué es una manera fácil de hacer esto?
De la documentación de npm-link :
En el directorio del módulo local:
$ cd ./package-dir
$ npm link
En el directorio del proyecto para utilizar el módulo:
$ cd ./project-dir
$ npm link package-name
O de una sola vez, usando caminos relativos:
$ cd ./project-dir
$ npm link ../package-dir
Esto es equivalente a usar dos comandos debajo del capó.
Ninguno de estos enfoques ( npm link
o package.json
file dependency) funciona si el módulo local tiene dependencias de iguales que solo desea instalar en el ámbito de su proyecto.
Por ejemplo:
/local/mymodule/package.json:
"name": "mymodule",
"peerDependencies":
{
"foo": "^2.5"
}
/dev/myproject/package.json:
"dependencies":
{
"mymodule": "file:/local/mymodule",
"foo": "^2.5"
}
En este escenario, npm configura los node_modules/
myproject
''s como esto:
/dev/myproject/node_modules/
foo/
mymodule -> /local/mymodule
Cuando el nodo carga mymodule
y require(''foo'')
, node resuelve el enlace simbólico mymodule
, y luego solo busca en /local/mymodule/node_modules/
(y sus ancestros) para foo
, que no encuentra. En su lugar, queremos que el nodo busque en /local/myproject/node_modules/
, ya que es desde donde /local/myproject/node_modules/
nuestro proyecto y donde está instalado foo
.
Entonces, o bien necesitamos una forma de decirle al nodo que no resuelva este enlace simbólico cuando busquemos foo
, o necesitamos una forma de decirle a npm que instale una copia de mymodule
cuando se usa la sintaxis de dependencia de archivos en package.json
. Tampoco he encontrado la manera de hacerlo, por desgracia :(
simplemente proporciona un argumento <folder>
a npm install
, el argumento debería a la carpeta local en lugar del nombre del paquete:
npm install /path