pode hospedar um repositório privado para a sua organização usar com o npm?
o MPN soa como uma grande plataforma para usar dentro de uma organização, curioso se um repo privado é possível, como com o Nexus/Maven. Nada aparece no Google: ([[2]}
14 answers
A olha para a documentação do MPN diz-nos, que é possível:
Posso gerir o meu registo privado? Sim!A maneira mais fácil é replicar a base de dados couch, e usar o mesmo (ou similar) doc de design para implementar a APIs.
Se você configurar a replicação contínua do CouchDB oficial, e então definir o seu CouchDB interno como a configuração do registro, então você vai seja capaz de ler quaisquer pacotes publicados, além dos seus privados, e por padrão só irá publicar internamente. Se quiser então publicar um pacote para o mundo inteiro ver, pode simplesmente anular a configuração--registry
para esse comando.
Também há um excelente tutorial sobre Como criar um repositório npm privado no blog do relógio.
EDITAR (2017-02-26):
{[[2]} não é realmente novo, mas existem agora planos pagos para hospedar privado pacotes no NPM.Ao longo dos anos, o MPN tornou-se um factor para muitos não-nódulos.empresas js, também, através do enorme ecossistema frontend que é construído sobre NPM. Se a sua empresa já estiver a executar Sonatype Nexus para hospedar projectos Java internamente, também o poderá usar para hospedar pacotes NPM internos.
Outras opções incluem JFrog Artifactory e Inedo ProGet , mas eu não as usei.
Https://github.com/isaacs/npmjs.org/ : Na versão v1.0.26 do npm, poderá indicar os URLs dos repositórios privados de git como uma dependência do seu pacote.ficheiros json. Eu não o usei, mas adoraria feedback. Aqui está o que você precisa fazer:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://[email protected]:my-app.git#v0.0.1",
}
}
O seguinte post fala sobre isto: discutível: Módulos npm privados
Existe um pacote npm fácil de usar para fazer isso. https://www.npmjs.org/package/sinopia
Em poucas palavras, o Sinopia é um servidor de repositório npm privado/cache que poderá configurar com configuração zero.
A Sinopia pode ser usada para:
- Publica os seus próprios pacotes privados sem os expor ao público.
- cache apenas pacotes públicos que são usados (não há necessidade de replicar todo o registério público)
- anular público pacotes com uma versão modificada que foram produzidos internamente.
Verdaccio é o que eu estava procurando e merece a sua própria resposta ;) é um garfo mantido ativamente da Sinopia (resposta altamente votada Aqui). É um registro npm como um pacote npm , e pode ser encontrado
Aqui. https://github.com/verdaccio/verdaccio,aqui: https://www.verdaccio.org,
e em
port number: 4873
Executar usando PM2
npm i -g verdaccio pm2
pm2 start --name verdaccio `which verdaccio`
pm2 save
Corra usando O acoplador
docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
Executar usando Helm
helm repo add verdaccio https://charts.verdaccio.org
helm repo update
helm install verdaccio/verdaccio
Em 14 de abril de 2015, foram introduzidos módulos privados npm .
Quando se pagam módulos privados, pode-se:É claro que não é grátis - actualmente 7 dólares por mês, por Utilizador. E ainda é um serviço novo. Por exemplo, falta o apoio às contas da organização (a partir de junho de 2015):
- albergue todos os pacotes privados que quiser
- dê acesso de leitura ou acesso de leitura para esses pacotes a qualquer outro utilizador pago
- Instale e utilize quaisquer pacotes que outros utilizadores pagos lhe tenham dado acesso a
- colabore em quaisquer pacotes que outros utilizadores pagos lhe tenham dado acesso de escrita a
Então ... apesar de não ser perfeito, é a solução oficial {[[28]}npm para manter pacotes privados, e isso por si só faz com que valha a pena mencionar.Actualmente, os pacotes privados só estão disponíveis para utilizadores individuais, mas o apoio às contas da organização está a chegar em breve. Sinta-se livre para criar um usuário para sua organização, entretanto, e nós podemos atualizá-lo para uma organização quando o suporte está aqui.
Actualizar
Pacotes privados Npm estão agora disponíveis, com planos para utilizadores individuais e organizações :
- Número ilimitado de pacotes públicos e privados
- $ 7 / mês / programador
- inclui um nome de âmbito, baseado no nome da organização
Publicar e controlar o acesso a @org-name / foo
(declaração de exoneração de responsabilidade: nem mesmo remotamente associado a npm, Inc.)
Gestores de repositórios com suporte para registos privados npm:
Pode criar um módulo npm privado e usar os comandos normais do npm para o instalar. A maior parte do nó.os usuários do js usam o git como repositório, mas você pode usar qualquer repositório que funcione para você.
-
No seu projecto, vai querer o esqueleto de um pacote NPM. Mais
os módulos do nó têm repositórios git onde você pode ver como eles
integrar com NPM (o pacote.JSON file, creio que faz parte do ...
presente e o site do NPM mostra como fazer um pacote do npm)
Use algo parecido para fazer e embale o seu pacote para ser
disponível a partir da internet ou da sua rede para encená-lo para npm
instalar downloads.
-
Uma vez feita a embalagem, então use
Npm install * tarball_url *
Esta é a maneira mais fácil que conheço-hospedá-lo na nuvem com o Gemfury registro privado npm.
É grátis e pode aceder à sua conta Github. Deve poupar-lhe muito tempo, em comparação com a criação do seu próprio banco de dados.Um pouco tarde para a festa, mas NodeJS (a partir de ~14 Nov, acho) suporta repositórios corporativos NPM-você pode saber mais sobre o seu site oficial .
A partir de um olhar superficial, parece que o npmE permite o espelhamento fall-through do repositório NPM - isto é, ele irá procurar os pacotes no repositório real} NPM se não conseguir encontrar um no seu repositório interno. Parece muito útil!
A Npm Enterprise é uma solução local para uma partilha segura e distribuindo módulos JavaScript dentro de sua organização, a partir da equipe que mantém o MPN e o registro público MPN. Foi concebido para equipas que precisam de: Fácil partilha interna de módulos privados melhor controlo do desenvolvimento e fluxo de trabalho de implantação segurança mais rigorosa em torno da implantação de código aberto Conformidade dos módulos com os requisitos legais para o código de acolhimento nas instalações npmE é privado npmInfelizmente, não é de graça. Você pode ter um julgamento, mas é software comercial. Esta é a parte não muito boa para desenvolvedores solo, mas se você é um desenvolvedor solo, você tem o GitHub: -)NpmE é um registo npm que funciona com o mesmo cliente npm normal você já usa, mas fornece os recursos necessários para maior organizações que estão agora adotando entusiasticamente node. Está construída. by npm, Inc., o patrocinador do projecto npm open source e o anfitrião do registo público da MPN.
Este post fala sobre como configurar um registro privado
- certifique-se que o couchdb está instalado no seu sistema
-
Replicando npmjs.org use o seguinte 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"
Note que existe "continuous":true
no comando, Este utiliza a API _change do CouchDB e irá obter quaisquer novas alterações quando esta API for notificada.
Se alguma vez quiser parar estas replicações, pode adicionar "cancel":true
facilmente. Então o script faria be
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"
Então vá para npmjs.org readme para instalar o npm (certifique-se que nodejs
e git
estão instalados). Soprar são todos os passos.
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
Também pode usar o Gestor de pacotes Aragon se preferir uma abordagem descentralizada:
- utilizar APM: http://blog.aragon.one / using-apm-to-replace-npm-and-other-centralized-package-managers/
- implantar a APM: https://github.com/aragon/aragonOS#apm