J'ai une application qui a le jeu habituel de dépendances sur des modules tiers (par exemple 'express') spécifié dans le fichier package.json sous dépendances. Par exemple
"express" : "3.1.1"
Je voudrais structurer mon propre code de manière modulaire et avoir un ensemble de modules locaux (c'est-à-dire sur le système de fichiers dans lequel je suis actuellement) installés par le package.json. Je sais que je peux installer un module local en exécutant:
npm install path/to/mymodule
Cependant, je ne sais pas comment y arriver via la structure de dépendances package.json. Utiliser l' --save
option dans cette commande revient simplement à mettre "mymodule": "0.0.0"
dans mon package.json (ne fait pas référence à l'emplacement du chemin de fichier). Si je supprime ensuite la version installée de node_modules et essaie de réinstaller à partir du package.json, il échoue (car il recherche "mymodule" dans le registre central et ne regarde pas localement).
Je suis sûr que c'est un moyen de dire à la "dependencies": {}
structure que je veux qu'il soit installé à partir d'un chemin de système de fichiers, mais je ne sais pas comment.
quelqu'un d'autre a ce problème? Merci.
package.json
à ce que nous avons à l'Gemfile
art.Réponses:
npm install
prend désormais en charge cettePour que cela fonctionne,
mymodule
il faut configurer un module avec le sienpackage.json
. Voir Création de modules NodeJS .Depuis npm 2.0, les dépendances locales sont prises en charge de manière native. Voir la réponse de danilopopeye à une question similaire . J'ai copié sa réponse ici car cette question se classe très haut dans les résultats de recherche sur le Web.
synchronisation des mises à jour
Depuis les
npm install
copiesmymodule
dansnode_modules
, les modifications demymodule
la source ne seront pas automatiquement vues par le projet dépendant.Il existe deux façons de mettre à jour le projet dépendant avec
Mettez à jour la version de
mymodule
puis utiliseznpm update
: Comme vous pouvez le voir ci-dessus, l'package.json
entrée "dépendances" n'inclut pas de spécificateur de version comme vous le verriez pour les dépendances normales. Au lieu de cela, pour les dépendances locales,npm update
essaie juste de s'assurer que la dernière version est installée, comme déterminé parmymodule
'spackage.json
. Voir la réponse de chriskelly à ce problème spécifique .Réinstallez à l'aide de
npm install
. Cela installera tout ce qui se trouve surmymodule
le chemin source, même s'il est plus ancien, ou a une autre branche extraite, peu importe.la source
"mymodule":"file:mymoduledir"
npm install --save ../my-local-repo
import { HelloWorld } from "my-test-lib";
, mais je reçois l'erreur "Cant find module". Veuillez jeter un œil à stackoverflow.com/questions/46818083/…import { HelloWorld } from "my-test-lib";
Voir: Dépendance locale dans package.json
Il semble que la réponse soit
npm link
: https://docs.npmjs.com/cli/linkla source
symlink
comment le projet parent saura-t-il reconstruire une fois la dépendance terminée?Je ne pouvais pas trouver un moyen soigné à la fin, alors je suis allé créer un répertoire appelé
local_modules
puis j'ai ajouté ce bashscript au package.json dans scripts-> preinstallla source
Après avoir eu beaucoup de mal avec la
npm link
commande (solution suggérée pour développer des modules locaux sans les publier dans un registre ou conserver une copie séparée dans le dossier node_modules), j'ai construit un petit module npm pour résoudre ce problème.La correction nécessite deux étapes simples .
Première:
Deuxièmement, ajoutez ceci à votre
package.json
:Plus de détails sur https://www.npmjs.com/package/lib-manager . J'espère que cela aide quelqu'un.
la source
S'il est acceptable de publier simplement vos modules préinstallés dans node_modules à côté de vos autres fichiers, vous pouvez le faire comme ceci:
Vous pouvez également vouloir stocker votre module sur git et dire à votre parent package.json d'installer la dépendance à partir de git: https://npmjs.org/doc/json.html#Git-URLs-as-Dependencies
la source