scripts que paquete example esta donde desinstalar node.js npm

node.js - example - cómo especificar módulos locales como dependencias del paquete npm



package.json scripts (5)

A partir de NPM 2.0.0, la importación de dependencias locales es compatible de forma nativa. Esto fue documentado por danilopopeye en respuesta a una pregunta similar . He copiado su respuesta aquí para ayudar a cualquiera que necesite encontrar la respuesta correcta, ya que esta pregunta tiene una posición muy alta en los resultados de búsqueda de Google.

Esta característica se implementó en la versión 2.0.0 de npm. Por ejemplo:

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

Cualquiera de los siguientes caminos también son válidos:

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

Tengo una aplicación que tiene el conjunto habitual de dependencias en módulos de terceros (por ejemplo, ''express'') especificado en el archivo package.json en dependencias. P.ej

"express" : "3.1.1"

Me gustaría estructurar mi propio código de forma modular y tener un conjunto de módulos locales (es decir, en el sistema de archivos en el que estoy actualmente) que sean instalados por el paquete.json. Sé que puedo instalar un módulo local ejecutando:

npm install path/to/mymodule

Sin embargo, no sé cómo hacer que esto suceda a través de la estructura de dependencias package.json. Usar la opción --save en este comando es simplemente poner "mymodule": "0.0.0" en mi paquete.json (no hace referencia a la ubicación de la ruta del archivo). Si luego elimino la versión instalada de node_modules, y trato de volver a instalar desde el paquete.json, falla (porque busca "mymodule" en el registro central y no se ve de forma local).

Estoy seguro de que es una forma de decirle a las "dependencies": {} estructura que quiero que se instale desde una ruta del sistema de archivos, pero no sé cómo.

¿Alguien más ha tenido este problema? Gracias.


Al final no pude encontrar una manera ordenada, así que fui a crear un directorio llamado local_modules y luego agregué este bashscript al paquete.json en scripts-> preinstall

#!/bin/sh for i in $(find ./local_modules -type d -maxdepth 1) ; do packageJson="${i}/package.json" if [ -f "${packageJson}" ]; then echo "installing ${i}..." npm install "${i}" fi done


Después de luchar mucho con el comando npm link (solución sugerida para desarrollar módulos locales sin publicarlos en un registro o mantener una copia separada en la carpeta node_modules), construí un pequeño módulo npm para ayudar con este problema.

La solución requiere dos pasos fáciles .

Primero:

npm install lib-manager --save-dev

Segundo, agregue esto a su package.json :

{ "name": "yourModuleName", // ... "scripts": { "postinstall": "./node_modules/.bin/local-link" } }

Más detalles en https://www.npmjs.com/package/lib-manager . Espero que ayude a alguien.


Si es aceptable simplemente publicar sus módulos preinstalados en node_modules junto con sus otros archivos, puede hacerlo así:

// ./node_modules/foo/package.json { "name":"foo", "version":"0.0.1", "main":"index.js" } // ./package.json ... "dependencies": { "foo":"0.0.1", "bar":"*" } // ./app.js var foo = require(''foo'');

También es posible que desee almacenar su módulo en git e informarle a su paquete principal.json que instale la dependencia desde git: https://npmjs.org/doc/json.html#Git-URLs-as-Dependencies