você pode hospedar um repository privado para sua organização usar com o npm?

O NPM soa como uma ótima plataforma para usar dentro de uma organização, curioso se um repository privado é possível, como com o Nexus / Maven. Nada surge no Google 🙁

Eu não acho que haja 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 privado?

Sim!

A maneira mais fácil é replicar o database do sofá e usar o mesmo documento de design (ou semelhante) para implementar as APIs.

Se você configurar a replicação contínua a partir do CouchDB oficial e, em seguida, configurar o CouchDB interno como a configuração do registro, poderá ler todos os pacotes publicados, além dos particulares, e, por padrão, só publicará internamente. Se você deseja publicar um pacote para todo o mundo, é possível simplesmente replace a configuração --registry desse comando.

Há também um excelente tutorial sobre como criar um repository npm privado no blog do relógio.

EDIT (2017-02-26):

Não é realmente novo, mas agora há planos pagos para hospedar pacotes privados 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, por meio do enorme ecossistema frontend que é construído sobre o NPM. Se a 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 JFrog Artifactory e Inedo ProGet , mas eu não usei essas.

https://github.com/isaacs/npmjs.org/ : No npm versão v1.0.26 você pode especificar urls de repositorys git privados como uma dependência em seus arquivos package.json. Eu não usei isso, mas adoraria 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 seguinte post 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 suma, Sinopia é um servidor de repository npm privado / com cache que você pode configurar com configuração zero.

Sinopia pode ser usado para:

  • publicar pacotes privados sem expor ao público
  • cache somente pacotes públicos que são usados ​​(não há necessidade de replicar todo o registro público)
  • replace pacotes públicos por uma versão modificada que tenha sido produzida internamente.

Em 14 de abril (2015), foram introduzidos os módulos privados da npm .

Quando você paga por módulos privados, você pode:

  • Hospede quantos pacotes privados desejar
  • Conceder access de leitura ou access de leitura / gravação para esses pacotes a qualquer outro usuário pago
  • Instale e use quaisquer pacotes que outros usuários pagos tenham lhe dado access de leitura
  • Colabore em qualquer pacote que outros usuários pagos tenham lhe dado access de gravação

Claro que não é grátis – atualmente 7 $ por mês, por usuário.

E ainda é um serviço muito novo. Por exemplo, o suporte para contas da organização está faltando (em junho de 2015):

Atualmente, os pacotes privados estão disponíveis apenas para usuários individuais, mas o suporte para as contas da organização está chegando em breve. Sinta-se à vontade para criar um usuário para sua organização enquanto isso, e podemos atualizá-lo para uma organização quando o suporte estiver aqui.

Então, embora não seja perfeita, é a solução oficial do npm para manter pacotes privados, e isso vale a pena mencionar.

ATUALIZAR

Os pacotes privados de NPM estão agora disponíveis, com planos para usuários individuais e organizações :

  • 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
  • Publique e controle o access a @ org-name / foo

(isenção de responsabilidade: nem mesmo remotamente afiliado de alguma forma com a npm, Inc. )

Gerenciadores de repositorys com suporte para registros privados de npm:

  • Sonatype Nexus 2.10
  • Artifactory 3.2

Eu acho que esse segmento precisa de uma atualização. Se você olhar para qualquer um dos registros do npm disponíveis, eles são extremamente pesados ​​e precisam do couchdb. Gemfurry e outros precisam que você se afaste de repos públicos. Alguns dos npm como shadow-npm não têm commits recentes .

Então, encontramos o Reggie . Ele tem uma boa atividade de commit, extremamente fácil de instalar e usar e tem um suporte muito bom para a comunidade . É extremamente leve e você não precisa lidar com o couchdb, etc.

Verdaccio é o que eu estava procurando e merece a sua própria resposta;) É uma bifurcação ativamente mantida de 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 , ou aqui: pnpm i verdaccio .

Perdoe-me se não entendi bem sua pergunta, mas aqui está 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 repository, mas você pode usar qualquer repository que funcione para você.

  1. Em seu projeto, você desejará o esqueleto de um pacote NPM. A maioria dos módulos de nó tem repositorys git onde você pode ver como eles se integram ao NPM (o arquivo package.json, acredito que faz parte disso e o site do NPM mostra como fazer um pacote npm)
  2. Use algo parecido com o Make para fazer e tarball seu pacote para estar disponível na internet ou na sua rede para encenar isso para downloads de instalação do npm.
  3. Uma vez que seu pacote é feito, então use

    npm install * tarball_url *

Esta é a maneira mais fácil que eu conheço – hospedá-lo na nuvem com o registro npm privado Gemfury.

É grátis e você pode entrar com sua conta do Github. Deve poupar muito tempo, em comparação com a criação da sua própria base de dados.

Um pouco atrasado para a festa, mas o NodeJS (a partir de 14 de novembro, eu acho) suporta repositorys corporativos do NPM – você pode descobrir mais em seu site oficial .

De uma perspectiva superficial, pareceria que o npmE permite o espelhamento direto do repository do NPM – isto é, ele procurará pacotes no repository real do NPM se não puder encontrar um no seu repository interno. Parece muito útil!

O npm Enterprise é uma solução local para compartilhamento e distribuição segura de módulos JavaScript em sua organização, da equipe que mantém o npm e o registro npm público. Ele foi projetado para equipes que precisam:

fácil compartilhamento interno de módulos privados melhor controle do stream de trabalho de desenvolvimento e implantação segurança mais estrita ao implantar módulos de código aberto a conformidade com os requisitos legais para hospedar o código npmE no local é npm privado

O npmE é um registro npm que funciona com o mesmo cliente npm padrão que você já usa, mas fornece os resources necessários para organizações maiores que agora adotam entusiasticamente o nó. É construído pela npm, Inc., o patrocinador do projeto open source npm e o host do registro npm público.

Infelizmente, não é grátis. Você pode obter um teste, mas é um software comercial. Este não é o melhor para os desenvolvedores solo, mas se você é um desenvolvedor solo, você tem o GitHub 🙂

Este post fala sobre como configurar um registro privado

  • verifique se o couchdb está instalado no seu sistema
  • Replicando o 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 há "continuous":true no comando, isso utiliza a API _changes do CouchDB e vai gerar novas alterações quando essa API for notificada.

Se você quiser parar essas replicações, você pode adicionar "cancel":true . Então o roteiro 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" 

Em seguida, vá para o readme npmjs.org para instalar o npm (certifique-se de que nodejs e git estejam instalados). 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 

Eu posso estar um pouco atrasado para a festa, mas qualquer um desses dois pode funcionar para você:

  1. http://www.jfrog.com/confluence/display/RTF/Npm+Repositories
  2. https://github.com/krakenjs/kappa

Estamos usando o Sonatype Nexus, a versão é Nexus Repository ManagerOSS 3.6.1-02. E tenho certeza de que ele suporta o repository privado do NPM e armazenou o pacote em cache.

insira a descrição da imagem aqui