Npm suona come una grande piattaforma da utilizzare all'interno di un'organizzazione, curioso se è possibile un repository privato, come con Nexus / Maven. Non succede nulla su Google :(
Npm suona come una grande piattaforma da utilizzare all'interno di un'organizzazione, curioso se è possibile un repository privato, come con Nexus / Maven. Non succede nulla su Google :(
Risposte:
Non penso che ci sia un modo semplice per farlo.
Uno sguardo alla documentazione di npm ci dice che è possibile:
Posso eseguire il mio registro privato?
Sì!
Il modo più semplice è replicare il database del divano e utilizzare lo stesso (o simile) documento di progettazione per implementare le API.
Se imposti la replica continua dal CouchDB ufficiale e poi imposti il tuo CouchDB interno come configurazione del registro, sarai in grado di leggere tutti i pacchetti pubblicati, oltre a quelli privati, e per impostazione predefinita verranno pubblicati solo internamente. Se poi vuoi pubblicare un pacchetto che tutto il mondo possa vedere, puoi semplicemente ignorare la
--registry
configurazione di quel comando.
C'è anche un eccellente tutorial su come creare un repository npm privato nel blog di Clock.
EDIT (26-02-2017):
Non proprio nuovo, ma ora ci sono piani a pagamento per ospitare pacchetti privati su NPM.
Nel corso degli anni, NPM è diventato un fattore anche per molte aziende non Node.js, attraverso l'enorme ecosistema di frontend basato su NPM. Se la tua azienda sta già eseguendo Sonatype Nexus per l'hosting di progetti Java internamente, puoi anche utilizzarlo per l'hosting di pacchetti NPM interni.
Altre opzioni includono JFrog Artifactory e Inedo ProGet , ma non le ho utilizzate.
https://github.com/isaacs/npmjs.org/ : nella versione npm v1.0.26 è possibile specificare gli URL dei repository git privati come dipendenza nei file package.json. Non l'ho usato ma mi piacerebbe un feedback. Ecco cosa devi fare:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
Il seguente post parla di questo: Debuggable: moduli npm privati
C'è un pacchetto npm facile da usare per fare questo. https://www.npmjs.org/package/sinopia
In breve, Sinopia è un server di repository npm privato / di cache che è possibile impostare con configurazione zero.
La sinopia può essere usata per:
Verdaccio è quello che stavo cercando e merita la sua risposta;) È un fork attivamente mantenuto della Sinopia (risposta altamente votata qui ). È un registro npm come pacchetto npm e può essere trovato
qui: https://github.com/verdaccio/verdaccio ,
qui: https://www.verdaccio.org ,
qui: pnpm i -g verdaccio
o
qui:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
Il 14 aprile (2015) sono stati introdotti i moduli privati npm .
Quando paghi per moduli privati, puoi:
- Ospita tutti i pacchetti privati che desideri
- Consentire l'accesso in lettura o in lettura / scrittura per tali pacchetti a qualsiasi altro utente a pagamento
- Installa e utilizza tutti i pacchetti a cui altri utenti a pagamento ti hanno concesso l'accesso in lettura
- Collabora a tutti i pacchetti a cui altri utenti a pagamento ti hanno dato accesso in scrittura
Ovviamente non è gratuito - attualmente 7 $ al mese, per utente.
Ed è ancora un servizio piuttosto nuovo. Ad esempio, manca il supporto per gli account dell'organizzazione (a giugno 2015):
Attualmente, i pacchetti privati sono disponibili solo per singoli utenti, ma il supporto per gli account dell'organizzazione è in arrivo. Nel frattempo, sentiti libero di creare un utente per la tua organizzazione e possiamo aggiornarlo a un'organizzazione quando il supporto è disponibile.
Quindi, sebbene non perfetta, è la soluzione npm ufficiale per mantenere i pacchetti privati, e questo vale la pena menzionarlo.
AGGIORNARE
I pacchetti privati di Npm sono ora disponibili, con piani sia per singoli utenti che per organizzazioni :
- Numero illimitato di pacchetti pubblici e privati
- $ 7 / mese / sviluppatore
- Include un nome ambito, basato sul nome dell'organizzazione
- Pubblica e controlla l'accesso a @ org-name / foo
(esonero di responsabilità: nemmeno affiliato a distanza in alcun modo con npm, Inc. )
Immagino che questo thread abbia bisogno di un aggiornamento. Se guardi uno qualsiasi dei registri npm disponibili, sono estremamente pesanti e hanno bisogno di couchdb. Gemfurry e altri hanno bisogno che tu ti riporti dai repository pubblici. Alcuni degli npm come shadow-npm non hanno commit recenti .
Quindi, abbiamo trovato Reggie . Ha una buona attività di commit, estremamente facile da installare e utilizzare e ha un buon supporto della comunità . È estremamente leggero e non devi occuparti di couchdb, ecc.
Scusami se non capisco bene la tua domanda, ma ecco la mia risposta:
È possibile creare un modulo npm privato e utilizzare i normali comandi di npm per installarlo. La maggior parte degli utenti di node.js usano git come repository, ma puoi usare qualunque repository funzioni per te.
Una volta creato il pacchetto, utilizzare
npm install * tarball_url *
Un po 'in ritardo alla festa, ma NodeJS (a partire dal ~ 14 novembre suppongo) supporta i repository NPM aziendali - puoi scoprire di più sul loro sito ufficiale .
A prima vista sembrerebbe che npmE consenta il mirroring fall-through del repository NPM, ovvero cercherà i pacchetti nel repository NPM reale se non riesce a trovarne uno sul proprio interno. Sembra molto utile!
npm Enterprise è una soluzione locale per la condivisione e la distribuzione sicura dei moduli JavaScript all'interno dell'organizzazione, dal team che gestisce npm e il registro npm pubblico. È progettato per i team che hanno bisogno di:
facile condivisione interna dei moduli privati miglior controllo del flusso di lavoro di sviluppo e distribuzione sicurezza più rigorosa intorno all'implementazione dei moduli open source conformità ai requisiti legali per ospitare il codice locale
npmE è un registro npm che funziona con lo stesso client npm standard che già usi, ma fornisce le funzionalità necessarie per le organizzazioni più grandi che ora stanno adottando con entusiasmo il nodo. È costruito da npm, Inc., sponsor del progetto open source npm e host del registro pubblico npm.
Sfortunatamente, non è gratuito. Puoi ottenere una versione di prova, ma è un software commerciale. Questo non è un granché per gli sviluppatori solisti, ma se sei uno sviluppatore solista, hai GitHub :-)
Questo post parla di come impostare un registro privato
Replica npmjs.org usa il seguente comando
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"
Nota che c'è "continuous":true
nel comando, questo utilizza l'API _changes di CouchDB e tirerà tutte le nuove modifiche quando questa API viene notificata.
Se mai vuoi interrompere queste repliche, puoi facilmente aggiungere "cancel":true
. Quindi la sceneggiatura sarebbe
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"
Quindi vai al file Leggimi di npmjs.org per installare npm (assicurati nodejs
che git
sia installato). Il colpo è tutti i passaggi
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
Potrei essere un po 'in ritardo alla festa, ma uno qualsiasi di questi due potrebbe funzionare per te:
Puoi anche utilizzare Aragon Package Manager se preferisci un approccio decentralizzato: