J'ai pris du code partagé et l'ai mis dans un module NPM, un que je ne veux pas télécharger dans le registre central. La question est de savoir comment l'installer à partir d'autres projets?
La façon la plus évidente est probablement de créer mon propre registre NPM, mais selon la documentation, cela implique beaucoup de tracas.
Puis-je simplement installer un module NPM qui se trouve sur le système de fichiers local, ou peut-être même à partir de git?
npm install --from-git git@server:project
npm install
tous les fichiers copiés dans le répertoire de votre projet. Ainsi, les chemins d'accès dans lesrequire
instructions ne seront relatifs qu'à votre répertoire de projet.install
cela ne serait-il pas simplement installé là-bas et non pour le projet pour lequel vous souhaitez l'utiliser?#<ref>
à la fin de l'url git, par exemplegit://github.com/visionmedia/express.git#v0.0.1
; (b) Pour être sûr, ajoutez"private": true
au package.json de vos dépôts privés. Cela garantira que npm ne vous laissera jamais publier accidentellement votre sauce secrète dans le registre officiel de npm. (selon debuggable.com/posts/… )npm i git+http://all/the/things.git
même si celagit clone http://all/the/things.git
fonctionne très bienDans vos modules npm privés, ajoutez
à votre package.json
Ensuite, pour référencer le module privé dans un autre module, utilisez-le dans votre package.json
la source
"private": true
partie n'est pas nécessaire, mais elle permettra d'éviter que votre dépôt privé ne soit accidentellement publié dans le registre public npm.npm install <git remote url>
section, il y a des options commeGIT_ASKPASS
etGIT_SSH
. Un exemple d'utilisation pour choisir une clé autre que l'id_rsa par défaut:GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://[email protected]:npm/npm.git
Oui, vous pouvez! Depuis la documentation https://docs.npmjs.com/cli/install
NPM n'est-il pas génial?
la source
tar -czf my-package.tar.gz dist
(en supposant que votredist
dossier contient également unpackage.json
fichier approprié ), vous pouvez le fairenpm install ../my-lib/my-package.tar.gz
depuis votre autre projet.Mise à jour janvier 2016
En plus d'autres réponses , il y a parfois le scénario où vous souhaitez avoir des modules privés disponibles dans un contexte d'équipe.
Les deux Github et Bitbucket soutiennent le concept de génération d' une équipe clé API . Cette clé API peut être utilisée comme mot de passe pour effectuer des requêtes API au sein de cette équipe.
Dans vos modules npm privés, ajoutez
à votre package.json
Ensuite, pour référencer le module privé dans un autre module, utilisez-le dans votre package.json
où nom d'équipe = myteamname et API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
Ici, je fais référence à un dépôt Bitbucket, mais il est presque identique en utilisant github aussi.
Enfin, comme alternative, si cela ne vous dérange vraiment pas de payer 7 $ par mois (au moment de la rédaction), vous pouvez maintenant avoir des modules NPM privés prêts à l'emploi.
la source
FWIW: J'ai eu des problèmes avec toutes ces réponses lorsque je traitais avec un référentiel d'organisation privé.
Ce qui suit a fonctionné pour moi:
Par exemple:
Je ne sais pas vraiment pourquoi les autres réponses n'ont pas fonctionné pour moi dans ce cas, car c'est ce que j'ai essayé en premier avant de frapper Google et de trouver cette réponse. Et les autres réponses sont ce que j'ai fait dans le passé.
J'espère que cela aide quelqu'un d'autre.
la source
https://
, et assurez-vous que le mot de passe n'est pas nécessaire lors de la deuxième exécution. Alors vous êtesJ'ai eu ce même problème, et après quelques recherches, j'ai trouvé Reggie ( https://github.com/mbrevoort/node-reggie ). Il semble assez solide. Il permet une publication légère des modules NPM sur des serveurs privés. Pas parfait (pas d'authentification lors de l'installation), et il est encore très jeune, mais je l'ai testé localement, et il semble faire ce qu'il devrait faire.
C'est ... (et cela juste à partir de leurs documents)
puis cd dans le répertoire de votre module et ...
enfin, vous pouvez installer les packages de reggie simplement en utilisant cette URL soit dans une commande d'installation directe de npm, soit à partir d'un package.json ... comme ça
ou..
la source
Structurez votre code de manière accessible comme ci-dessous. Si cela vous est possible.
Dans MainApp @ NodProjs \ Apps \ MainApp \
Vous devrez peut-être mettre à jour package.json en tant que:
Cela a fonctionné pour ma situation.
la source
Npm fournit maintenant des modules hébergés privés illimités pour 7 $ / utilisateur / mois utilisés comme tel
dans votre package json set
"name": " @username/private-project"
puis d'exiger votre projet:
la source
En commençant par la réponse d' Arcseldon , j'ai trouvé que le nom de l'équipe était nécessaire dans l'URL comme ceci:
Et notez que la clé API n'est disponible que pour l'équipe, pas pour les utilisateurs individuels.
la source
Configuration à installer à partir du référentiel Github public, même si la machine est sous pare-feu:
la source
J'utilise ce qui suit avec un référentiel github privé:
la source
C'est ce que je cherchais :
la source
Vous pouvez utiliser Verdaccio à cet effet, qui est un registre de proxy npm privé léger construit dans Node.js. Il est également gratuit et open-source. En utilisant Verdaccio, cela n'implique pas autant de tracas qu'un registre npm privé simple.
Vous pouvez trouver des informations détaillées sur la façon de l'installer et de l'exécuter sur leur site Web, mais voici les étapes:
Cela nécessite
node >=8.x
.Il a également un docker afin que vous puissiez facilement le publier sur votre docker accessible au public et le tour est joué vous avez un dépôt npm privé qui peut être distribué aux autres d'une manière que vous le configurez!
la source
Très simple -
Il définit en fait
registry = "https://path-to-your-registry"
cette ligne/Users/<ur-machine-user-name>/.npmrc
Toutes les valeurs que vous avez définies explicitement ou qui ont été définies par défaut peuvent être vues par -
npm config list
la source