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]}

Author: adam, 2011-09-27

14 answers

Acho que não há uma maneira fácil de fazer isto.

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.

 102
Author: pvorb, 2018-01-30 00:19:54

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

 204
Author: ebdr, 2011-10-18 13:08:49

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.
 93
Author: TiQP, 2014-04-03 15:09:47

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
 45
Author: kub1x, 2020-12-17 08:18:16

Em 14 de abril de 2015, foram introduzidos módulos privados npm .

Quando se pagam módulos privados, pode-se:
  • 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
É 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):

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.

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.

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.)

 28
Author: bardzusny, 2020-06-20 09:12:55

Gestores de repositórios com suporte para registos privados npm:

 20
Author: Abel Pastur, 2015-01-30 17:07:49
Acho que este tópico precisa de uma actualização. Se você olhar para qualquer um dos registros npm que estão disponíveis, eles são extremamente pesados e eles precisam couchdb. Gemfurry e outros precisam que saia dos repos públicos. Alguns dos npm, como O shadow-npm, não têm nenhum commits recente . Então, encontrámos O Reggie. Tem uma boa atividade de commit, extremamente fácil de instalar e usar e tem muito bom suporte comunitário . É extremamente leve e você não tem que lidar com couchdb, etc.
 10
Author: Pradeep Mahdevu, 2013-10-31 17:05:52
Perdoe - me se não entendi bem a sua pergunta, mas aqui está a minha resposta:

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.
  1. Uma vez feita a embalagem, então use

    Npm install * tarball_url *

 9
Author: EhevuTov, 2011-09-27 23:35:08

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.
 7
Author: alex urdea, 2013-06-03 16:38:24

Estamos a usar o Sonatype Nexus, a versão é o Nexus Repository ManagerOSS 3.6.1-02. E tenho certeza de que ele suporta npm private repository e cache o pacote.

enter image description here

 7
Author: Xin Meng, 2018-01-26 18:46:25

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 npm

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.

Infelizmente, 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: -)
 5
Author: Dan, 2015-03-06 16:24:44

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 
 3
Author: nickleefly, 2013-06-23 10:44:57
Posso chegar um pouco atrasado à festa, mas qualquer um destes dois pode trabalhar para ti.
  1. http://www.jfrog.com/confluence/display/RTF/Npm+Repositórios
  2. https://github.com/krakenjs/kappa
 2
Author: Prabhat, 2014-05-28 17:13:41

Também pode usar o Gestor de pacotes Aragon se preferir uma abordagem descentralizada:

  1. utilizar APM: http://blog.aragon.one / using-apm-to-replace-npm-and-other-centralized-package-managers/
  2. implantar a APM: https://github.com/aragon/aragonOS#apm
 0
Author: countTheRow, 2019-02-11 12:20:13