O Npm parece uma ótima plataforma para usar em uma organização, curioso para saber se é possível um repo privado, como no Nexus / Maven. Nada aparece no Google :(
O Npm parece uma ótima plataforma para usar em uma organização, curioso para saber se é possível um repo privado, como no Nexus / Maven. Nada aparece no Google :(
Respostas:
Eu não acho que exista uma maneira fácil de fazer isso.
Uma olhada na documentação do npm nos diz que é possível:
Posso executar meu próprio registro particular?
Sim!
A maneira mais fácil é replicar o banco de dados do sofá e usar o mesmo documento de design (ou similar) para implementar as APIs.
Se você configurar a replicação contínua a partir do CouchDB oficial e, em seguida, definir o CouchDB interno como a configuração do registro, poderá ler todos os pacotes publicados, além dos particulares, e por padrão, apenas publicará internamente. Se você deseja publicar um pacote para o mundo inteiro ver, basta substituir a
--registry
configuração desse comando.
Há também um excelente tutorial sobre como criar um repositório npm privado no blog clock.
EDIT (2017-02-26):
Não é realmente novo, mas agora existem planos pagos para hospedar pacotes particulares no NPM.
Ao longo dos anos, o NPM também se tornou um fator para muitas empresas que não são do Node.js., através do imenso ecossistema de front-end construído sobre o NPM. Se sua empresa já estiver executando o Sonatype Nexus para hospedar projetos Java internamente, você também poderá usá-lo para hospedar pacotes NPM internos.
Outras opções incluem o JFrog Artifactory e o Inedo ProGet , mas eu não as usei.
https://github.com/isaacs/npmjs.org/ : Na versão npm v1.0.26, você pode especificar URLs de repositórios git privados como uma dependência em seus arquivos package.json. Eu não o usei, mas gostaria de receber feedback. Aqui está o que você precisa fazer:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
O post a seguir fala sobre isso: Debuggable: Private npm modules
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 / com cache que você pode configurar com configuração zero.
O Sinopia pode ser usado para:
Verdaccio é o que eu estava procurando e merece sua própria resposta;) É um fork do Sinopia mantido ativamente (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 ,
aqui: pnpm i -g verdaccio
ou
aqui:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
Em 14 de abril de 2015, foram introduzidos módulos privados npm .
Quando você paga por módulos particulares, pode:
- Hospede quantos pacotes particulares você desejar
- Conceda acesso de leitura ou acesso de leitura e gravação desses pacotes a qualquer outro usuário pago
- Instale e use quaisquer pacotes aos quais outros usuários pagos tenham acesso de leitura a
- Colabore em todos os pacotes aos quais outros usuários pagos lhe deram acesso de gravação
Claro que não é gratuito - atualmente US $ 7 por mês, por usuário.
E ainda é um serviço bem novo. Por exemplo, falta suporte para contas da organização (em junho de 2015):
Atualmente, os pacotes privados estão disponíveis apenas para usuários individuais, mas o suporte para contas da organização está disponível em breve. Enquanto isso, crie um usuário para sua organização e podemos atualizá-lo para uma organização quando houver suporte aqui.
Portanto, embora não seja perfeita, é a solução oficial do npm para manter pacotes privados, e isso por si só vale a pena mencionar.
ATUALIZAR
Agora, os pacotes privados Npm estão disponíveis, com planos para usuários e organizações individuais :
- Número ilimitado de pacotes públicos e privados
- US $ 7 / mês / desenvolvedor
- Inclui um nome de escopo, com base no nome da organização
- Publicar e controlar o acesso a @ org-name / foo
(aviso de isenção de responsabilidade: nem mesmo remotamente afiliado à npm, Inc. )
Eu acho que esse tópico precisa de uma atualização. Se você olhar para qualquer um dos registros npm disponíveis, eles são extremamente pesados e precisam do couchdb. Gemfurry e outros precisam de você em reuniões públicas. Alguns dos npm's como shadow-npm não têm confirmações recentes .
Então, encontramos Reggie . Possui uma boa atividade de consolidação, extremamente fácil de instalar e usar e possui um bom suporte da comunidade . É extremamente leve e você não precisa lidar com o couchdb, etc.
Perdoe-me se não entender bem sua pergunta, mas aqui está a minha resposta:
Você pode criar um módulo npm privado e usar os comandos normais do npm para instalá-lo. A maioria dos usuários do node.js. usa o git como seu repositório, mas você pode usar o que funcionar melhor para você.
Depois que seu pacote for feito, use
npm install * tarball_url *
Esta é a maneira mais fácil que eu conheço - hospede-a na nuvem com o Gemfury registro npm privado.
É gratuito e você pode fazer login com sua conta do Github. Isso poupa muito tempo, comparado à configuração de seu próprio banco de dados.
Um pouco atrasado para a festa, mas o NodeJS (a partir de 14 de novembro, eu acho) suporta repositórios corporativos do NPM - você pode descobrir mais em seu site oficial .
De uma olhada superficial, parece que o npmE permite o espelhamento de fall-through do repositório NPM - ou seja, ele procurará pacotes no repositório NPM real, se não conseguir encontrar um no seu interno. Parece muito útil!
O npm Enterprise é uma solução local para compartilhar e distribuir com segurança módulos JavaScript em sua organização, da equipe que mantém o npm e o registro público do npm. Ele foi projetado para equipes que precisam de:
compartilhamento interno fácil de módulos privados melhor controle do fluxo de trabalho de desenvolvimento e implantação, segurança mais rígida em torno da implantação de módulos de código-fonte aberto em conformidade com os requisitos legais para hospedar códigos locais npmE é npm privado
O npmE é um registro do npm que funciona com o mesmo cliente npm padrão que você já usa, mas fornece os recursos necessários para organizações maiores que agora adotam o nó com entusiasmo. Ele foi desenvolvido pela npm, Inc., patrocinadora do projeto de código-fonte aberto da npm e host do registro público da npm.
Infelizmente, não é grátis. Você pode fazer um teste, mas é um software comercial. Este não é o melhor para desenvolvedores solo, mas se você é um desenvolvedor solo, tem o GitHub :-)
Este post fala sobre como configurar um registro privado
Replicar 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"
Observe que existe "continuous":true
no comando, isso utiliza a API _changes do CouchDB e puxa novas alterações quando essa API é notificada.
Se você quiser interromper essas replicações, poderá adicioná-las facilmente "cancel":true
. Então o script seria
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 NPM (certifique-se nodejs
e git
está instalado). Golpe é 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
Talvez eu esteja um pouco atrasado para a festa, mas qualquer um desses dois pode funcionar para você:
Você também pode usar o Aragon Package Manager se preferir uma abordagem descentralizada: