mac instalar como commands node.js npm

node.js - instalar - npm install windows



Dependencia local en package.json (10)

Quiero hacer algo como esto, por lo que npm install también instala el package.json de ../somelocallib o, lo que es más importante, sus dependencias.

"dependencies": { "express": "*", "../somelocallib": "*" }


Actualización 2014-Sep

Esta característica fue implemented en la versión 2.0.0 de npm. Ejemplo:

{ "name": "baz", "dependencies": { "bar": "file:../foo/bar" } }

Cualquiera de las siguientes rutas también son válidas:

../foo/bar ~/foo/bar ./foo/bar /foo/bar

El paquete local se copied al prefix ( ./node-modules ).

Vieja respuesta

Ponga somelocallib como dependencia en su package.json como de costumbre:

"dependencies": { "somelocallib": "0.0.x" }

Luego ejecute el npm link ../somelocallib y npm instalará la versión en la que está trabajando como un enlace simbólico .

[email protected] /private/tmp/app └── [email protected] -> /private/tmp/somelocallib

Referencia: link(1)


Ahora es posible especificar las rutas de instalación locales del módulo Node en su package.json directamente. De la documentación:

Caminos Locales

A partir de la versión 2.0.0, puede proporcionar una ruta a un directorio local que contenga un paquete. Las rutas locales se pueden guardar usando npm install -S o npm install --save , usando cualquiera de estos formularios:

../foo/bar ~/foo/bar ./foo/bar /foo/bar

en cuyo caso, se normalizarán a una ruta relativa y se agregarán a su package.json . Por ejemplo:

{ "name": "baz", "dependencies": { "bar": "file:../foo/bar" } }

Esta función es útil para el desarrollo fuera de línea local y para la creación de pruebas que requieren la instalación de npm donde no desea acceder a un servidor externo, pero no debe usarse al publicar paquetes en el registro público.


Así es como agregarás dependencias locales:

npm install file:src/assets/js/FILE_NAME

Agrégalo a package.json desde NPM:

npm install --save file:src/assets/js/FILE_NAME

Añadir directamente a package.json como este:

.... "angular2-autosize": "1.0.1", "angular2-text-mask": "8.0.2", "animate.css": "3.5.2", "LIBRARY_NAME": "file:src/assets/js/FILE_NAME" ....


Curioso ... al menos en Windows (mi npm es 3. algo) que necesitaba hacer:

"dependencies": { "body-parser": "^1.17.1", "module1": "../module1", "module2": "../module2",

Cuando hice una npm install ../module1 --save , resultó en rutas absolutas y no relativas por la documentación.

Me metí un poco más y determiné que ../xxx era suficiente.

Específicamente, he comprobado los módulos de nodo local para decir d: / build / module1, d: / build / module2 y mi proyecto de nodo (aplicación) en d: / build / nodeApp.

Para ''instalar'', yo:

d:/build/module1> rmdir "./node_modules" /q /s && npm install d:/build/module2> rmdir "./node_modules" /q /s && npm install d:/build/nodeApp> rmdir "./node_modules" /q /s && npm install

package.json de module1 tiene una dependencia de "module2": "../module2"; módulo2 no tiene dependencia local; nodeApp tiene dependencias "module1": "../module1" y "module2": "../module2".

No estoy seguro de si esto solo me funciona ya que las 3 carpetas (module1, module2 y nodeApp) se encuentran en ese mismo nivel .......


En realidad, a partir de npm 2.0, ahora hay soporte para rutas locales (ver here ).


Esto funciona para mi

Coloque lo siguiente en su archivo package.json

"scripts": { "preinstall": "npm install ../my-own-module/" }


Esto me funcionó: primero, asegúrese de que los directorios npm tengan el usuario correcto

sudo chown -R myuser ~/.npm sudo chown -R myuser /usr/local/lib/node_modules

Entonces tu en tu package.json enlace el directorio

"scripts": { "preinstall": "npm ln mylib ../../path/to/mylib" }, "dependencies": { "mylib" : "*" }


Sé que npm install ../somelocallib funciona.

Sin embargo, no sé si la sintaxis que se muestra en la pregunta funcionará desde package.json ...

Desafortunadamente, doc parece mencionar solo la URL como una dependencia.

Pruebe el file:///.../...tar.gz , apuntando a una biblioteca local comprimida ... y díganos si funciona.


Si desea automatizar aún más esto, ya que está controlando su módulo en el control de versiones y no quiere confiar en que los desarrolladores recuerden el enlace de npm, puede agregar esto a la sección "scripts" de package.json:

"scripts": { "postinstall": "npm link ../somelocallib", "postupdate": "npm link ../somelocallib" }

Esto se siente más allá de hacky, pero parece "trabajar". Recibí el consejo de este problema de npm: https://github.com/isaacs/npm/issues/1558#issuecomment-12444454