Je veux faire quelque chose comme ça, alors npm install
installe également package.json
des ../somelocallib
ou plus important encore ses dépendances.
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
Cette fonctionnalité a été implémentée dans la version 2.0.0 de npm. Exemple:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
L'un des chemins suivants est également valide:
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
Le package local sera copié dans le préfixe ( ./node-modules
).
Mettez somelocallib
comme dépendance dans votre package.json
comme d'habitude:
"dependencies": {
"somelocallib": "0.0.x"
}
Ensuite, exécutez npm link ../somelocallib
et npm installera la version sur laquelle vous travaillez en tant que lien symbolique .
app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib
Référence: lien (1)
npm dedup
pour résoudre ce problème. npmjs.org/doc/cli/npm-dedupe.htmlnpm install <folder>
, installez le package dans le répertoire en tant que lien symbolique dans le projet en cours.Il est désormais possible de spécifier
package.json
directement les chemins d'installation du module Node local dans votre . De la documentation:la source
"bar": "file:///home/user/src/foo/bar"
node:onbuild
images standard copient uniquement le répertoire en cours et ne contiennent donc rien../foo
.npm install
proviennent ou un autre référentiel git sur le LAN? Lorsque j'essaie l'installation ci-dessus et npm à partir de git + ssh, il semble regarder dans le répertoire node_modules et ne pas essayer de passer en revue git + ssh même si c'est ainsi que j'installe le package de niveau supérieur.Cela fonctionne pour moi.
Placez ce qui suit dans votre fichier package.json
la source
.gitignore
dans le dossier du module, créé.npmignore
et la première fois que je l'ai exécuté, il a appliqué 777 de manière récursive sur tous les dossiers saufnode_modules
. Mais oui, il a installé les dépendances. Utilisation de npm version 1.4.14."dependencies": { "my-own-module": "file:../my-own-module" }
?npm link
est que vous n'avez pas besoin de le faire ànpm install
chaque fois pour mettre à jour vos dépendances.Si vous souhaitez automatiser davantage cela, car vous vérifiez votre module dans le contrôle de version et ne voulez pas vous fier aux développeurs qui se souviennent du lien npm, vous pouvez l'ajouter à votre section "scripts" de package.json:
Cela semble au-delà du hacky, mais cela semble "fonctionner". Vous avez obtenu l'astuce de ce numéro npm: https://github.com/npm/npm/issues/1558#issuecomment-12444454
la source
postinstall
etpostupdate
au lieu depreinstall
etpreupdate
?Voici comment vous allez ajouter des dépendances locales:
npm install file:src/assets/js/FILE_NAME
Ajoutez-le à package.json depuis NPM:
npm install --save file:src/assets/js/FILE_NAME
Ajoutez directement à package.json comme ceci:
la source
Projet de master
Voici le package.json que vous utiliserez pour le projet maître:
Là, se
./somelocallib
trouve la référence au dossier de la bibliothèque par rapport au projet maître package.json .Référence: https://docs.npmjs.com/files/package.json#local-paths
Sous projet
Gérez vos dépendances de bibliothèque.
En plus de courir
npm install
, vous devrez courir(cd node_modules/somelocallib && npm install)
.Il s'agit d'un bogue connu avec NPM.
Référence: https://github.com/npm/npm/issues/1341 (recherche d'une référence plus à jour)
Notes pour Docker
Enregistrez votre maître
package.lock
et votresomelocallib/package.lock
dans votre gestionnaire de code source.Ensuite, dans votre Dockerfile, utilisez:
J'utilise des parenthèses dans mes
(cd A && B)
constructions pour rendre l'opération idempotente.la source
Je sais que ça
npm install ../somelocallib
marche.Cependant, je ne sais pas si la syntaxe que vous montrez dans la question fonctionnera ou non
package.json
...Malheureusement, doc semble ne mentionner que l'URL comme dépendance.
Essayez de
file:///.../...tar.gz
pointer vers une bibliothèque locale zippée ... et dites-nous si cela fonctionne.la source
Cela a fonctionné pour moi: d'abord, assurez-vous que les répertoires npm ont le bon utilisateur
Ensuite, votre lien dans votre package.json le répertoire
la source
npm install
.En fait, à partir de npm 2.0, il existe désormais un support pour les chemins locaux (voir ici ).
la source
Curieux ..... au moins sur Windows (mon npm est 3. quelque chose), je devais faire:
Quand je l'ai fait,
npm install ../module1 --save
cela a abouti à des chemins absolus et non relatifs selon la documentation.Je me suis encore un peu amusé et j'ai déterminé que
../xxx
c'était suffisant.Plus précisément, j'ai vérifié les modules de nœud local pour dire d: \ build \ module1, d: \ build \ module2 et mon projet de nœud (application) dans d: \ build \ nodeApp.
Pour «installer», je:
package.json de module1 a une dépendance de "module2": "../module2"; module2 n'a aucune dépendance locale; nodeApp a les dépendances "module1": "../module1" et "module2": "../module2".
Je ne sais pas si cela ne fonctionne que pour moi car les 3 dossiers (module1, module2 et nodeApp) se trouvent au même niveau .......
la source
Deux étapes pour un développement local complet:
la source