Npm ressemble à une excellente plate-forme à utiliser au sein d'une organisation, curieux de savoir si un dépôt privé est possible, comme avec Nexus / Maven. Rien ne vient sur Google :(
Npm ressemble à une excellente plate-forme à utiliser au sein d'une organisation, curieux de savoir si un dépôt privé est possible, comme avec Nexus / Maven. Rien ne vient sur Google :(
Réponses:
Je ne pense pas qu'il existe un moyen facile de le faire.
Un regard sur la documentation de npm nous dit qu'il est possible:
Puis-je exécuter mon propre registre privé?
Oui!
Le moyen le plus simple consiste à répliquer la base de données de canapé et à utiliser le même (ou similaire) document de conception pour implémenter les API.
Si vous configurez une réplication continue à partir de la CouchDB officielle, puis définissez votre CouchDB interne comme configuration de registre, vous pourrez lire tous les packages publiés, en plus de vos packages privés, et par défaut, publier uniquement en interne. Si vous souhaitez ensuite publier un package pour le monde entier à voir, vous pouvez simplement remplacer la
--registry
configuration de cette commande.
Il y a aussi un excellent tutoriel sur la façon de créer un référentiel npm privé dans le blog d'horloge.
EDIT (2017-02-26):
Pas vraiment nouveau, mais il existe maintenant des plans payants pour héberger des packages privés sur NPM.
Au fil des ans, NPM est également devenu un facteur pour de nombreuses sociétés non-Node.js, grâce à l'énorme écosystème frontend qui s'appuie sur NPM. Si votre entreprise exécute déjà Sonatype Nexus pour l'hébergement de projets Java en interne, vous pouvez également l'utiliser pour l'hébergement de packages NPM internes.
D'autres options incluent JFrog Artifactory et Inedo ProGet , mais je ne les ai pas utilisées.
https://github.com/isaacs/npmjs.org/ : Dans la version npm v1.0.26, vous pouvez spécifier les URL des référentiels git privés en tant que dépendance dans vos fichiers package.json. Je ne l'ai pas utilisé mais j'aimerais avoir des commentaires. Voici ce que tu dois faire:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
Le post suivant en parle: Debuggable: Private npm modules
Pour cela, il existe un package npm facile à utiliser. https://www.npmjs.org/package/sinopia
En un mot, Sinopia est un serveur de référentiel npm privé / avec mise en cache que vous pouvez installer sans configuration.
Sinopia peut être utilisé pour:
Verdaccio est ce que je cherchais et il mérite sa propre réponse;) Il s'agit d'une fourchette activement maintenue de Sinopia (réponse très appréciée ici ). Il s'agit d'un registre npm en tant que package npm , et peut être trouvé
ici: https://github.com/verdaccio/verdaccio ,
ici: https://www.verdaccio.org ,
ici :,pnpm i -g verdaccio
ou
ici:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
Le 14 avril (2015), des modules privés npm ont été introduits.
Lorsque vous payez pour des modules privés, vous pouvez:
- Hébergez autant de packages privés que vous le souhaitez
- Accordez un accès en lecture ou en lecture-écriture pour ces packages à tout autre utilisateur payant
- Installer et utiliser tous les packages auxquels d'autres utilisateurs payants vous ont donné un accès en lecture
- Collaborez sur tous les packages auxquels d'autres utilisateurs payants vous ont donné un accès en écriture
Bien sûr, ce n'est pas gratuit - actuellement 7 $ par mois, par utilisateur.
Et c'est toujours un service assez nouveau. Par exemple, la prise en charge des comptes d'organisation est manquante (en juin 2015):
Actuellement, les packages privés ne sont disponibles que pour les utilisateurs individuels, mais la prise en charge des comptes d'organisation sera bientôt disponible. N'hésitez pas à créer un utilisateur pour votre organisation en attendant, et nous pouvons le mettre à niveau vers une organisation lorsque le support est là.
Donc, bien qu'il ne soit pas parfait, c'est la solution officielle de npm pour maintenir les packages privés, et cela en soi mérite d'être mentionné.
METTRE À JOUR
Les packages privés Npm sont maintenant disponibles, avec des plans pour les utilisateurs individuels et les organisations :
- Nombre illimité de forfaits publics et privés
- 7 $ / mois / développeur
- Comprend un nom d'étendue, basé sur le nom de l'organisation
- Publier et contrôler l'accès à @ org-name / foo
(Avertissement: pas même affilié à distance en aucune façon avec npm, Inc. )
Gestionnaires de référentiel avec prise en charge des registres npm privés:
Je suppose que ce fil a besoin d'une mise à jour. Si vous regardez l'un des registres npm disponibles, ils sont extrêmement lourds et ont besoin de couchdb. Gemfurry et d'autres ont besoin de vous pour sortir des dépôts publics. Certains des npm comme shadow-npm n'ont fait aucun commit récent .
Ensuite, nous avons trouvé Reggie . Il a une bonne activité de validation, extrêmement facile à installer et à utiliser et a un assez bon support communautaire . C'est extrêmement léger et vous n'avez pas à vous soucier de couchdb, etc.
Pardonnez-moi si je ne comprends pas bien votre question, mais voici ma réponse:
Vous pouvez créer un module npm privé et utiliser les commandes normales de npm pour l'installer. La plupart des utilisateurs de node.js utilisent git comme référentiel, mais vous pouvez utiliser le référentiel qui vous convient.
Une fois votre colis fait, utilisez
npm install * tarball_url *
C'est la façon la plus simple que je connaisse - l'héberger dans le cloud avec le registre privé npm Gemfury .
C'est gratuit et vous pouvez vous connecter avec votre compte Github. Cela devrait vous faire gagner beaucoup de temps, par rapport à la création de votre propre base de données.
Un peu tard pour la fête, mais NodeJS (à partir du ~ 14 novembre je suppose) prend en charge les référentiels NPM d'entreprise - vous pouvez en savoir plus sur leur site officiel .
D'un coup d'œil rapide, il semblerait que npmE permette la mise en miroir directe du référentiel NPM - c'est-à-dire qu'il recherchera les packages dans le vrai référentiel NPM s'il ne peut pas en trouver un sur votre interne. Semble très utile!
npm Enterprise est une solution locale pour partager et distribuer en toute sécurité des modules JavaScript au sein de votre organisation, de la part de l'équipe qui gère npm et le registre public npm. Il est conçu pour les équipes qui ont besoin de:
partage interne facile des modules privés meilleur contrôle du flux de travail de développement et de déploiement sécurité renforcée autour du déploiement des modules open source conformité aux exigences légales pour héberger le code sur site npmE est privé npm
npmE est un registre npm qui fonctionne avec le même client npm standard que vous utilisez déjà, mais fournit les fonctionnalités nécessaires aux grandes organisations qui adoptent maintenant avec enthousiasme le nœud. Il est construit par npm, Inc., le sponsor du projet open source npm et l'hôte du registre public npm.
Malheureusement, ce n'est pas gratuit. Vous pouvez obtenir un essai, mais c'est un logiciel commercial. Ce n'est pas si bon pour les développeurs solo, mais si vous êtes développeur solo, vous avez GitHub :-)
Cet article explique comment configurer un registre privé
En répliquant npmjs.org, utilisez la commande suivante
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"
Notez qu'il y a "continuous":true
dans la commande, cela utilise l'API _changes de CouchDB et tirera toutes les nouvelles modifications lorsque cette API sera notifiée.
Si jamais vous souhaitez arrêter ces réplications, vous pouvez facilement en ajouter "cancel":true
. Ensuite, le script serait
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true, "cancel":true}' -H "Content-Type: application/json"
Ensuite , allez à readme npmjs.org installer NPM (assurez - vous nodejs
et git
est installé). Le coup est toutes les étapes
git clone git://github.com/isaacs/npmjs.org.git
cd npmjs.org
sudo npm install -g couchapp
npm install couchapp
npm install semver
couchapp push registry/app.js http://localhost:5984/registry
couchapp push www/app.js http://localhost:5984/registry
Je serais peut-être un peu en retard à la fête, mais l'un de ces deux pourrait fonctionner pour vous:
Vous pouvez également utiliser Aragon Package Manager si vous préférez une approche décentralisée: