Peguei um código compartilhado e o coloquei em um módulo NPM, um que não quero carregar no registro central. A questão é: como instalá-lo de outros projetos?
A maneira óbvia é provavelmente configurar meu próprio registro do NPM, mas, de acordo com a documentação, isso envolve muitos problemas.
Posso apenas instalar um módulo NPM que fica no sistema de arquivos local, ou talvez até no git?
npm install --from-git git@server:project
node.js
npm
package
npm-private-modules
futlib
fonte
fonte
npm install
todos os arquivos são copiados para o diretório do projeto. Portanto, os caminhos nasrequire
instruções serão relativos apenas ao diretório do seu projeto.install
isso não seria instalado apenas e não para o projeto para o qual você deseja usá-lo?#<ref>
a ao final do URL do git, por exemplogit://github.com/visionmedia/express.git#v0.0.1
; (b) Para ser seguro, adicione"private": true
ao package.json de seus repositórios particulares. Isso garantirá que o npm nunca permita que você publique acidentalmente seu molho secreto no registro oficial do npm. (de acordo com debuggable.com/posts/… )npm i git+http://all/the/things.git
mesmo quegit clone http://all/the/things.git
funciona muito bemNos seus módulos npm privados, adicione
para o seu package.json
Em seguida, para referenciar o módulo privado em outro módulo, use isso no seu package.json
fonte
"private": true
peça não é necessária, mas ajudará a impedir que seu repositório particular seja acidentalmente publicado no registro público do npm.npm install <git remote url>
seção, há opções comoGIT_ASKPASS
eGIT_SSH
exemplo de uso .Um para escolher uma outra tecla que o id_rsa padrão:GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://[email protected]:npm/npm.git
Sim você pode! Nos documentos https://docs.npmjs.com/cli/install
Npm não é brilhante?
fonte
tar -czf my-package.tar.gz dist
(supondo que suadist
pasta também tenha umpackage.json
arquivo adequado ), será possívelnpm install ../my-lib/my-package.tar.gz
em seu outro projeto.Atualização de janeiro de 2016
Além de outras respostas , às vezes há o cenário em que você deseja ter módulos privados disponíveis em um contexto de equipe.
O Github e o Bitbucket suportam o conceito de gerar uma chave de API de equipe . Essa chave de API pode ser usada como a senha para executar solicitações de API como essa equipe.
Nos seus módulos npm privados, adicione
para o seu package.json
Em seguida, para referenciar o módulo privado em outro módulo, use isso no seu package.json
onde team name = myteamname , e API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
Aqui, faço referência a um repositório de bitbucket, mas é quase idêntico usando o github também.
Finalmente, como alternativa, se você realmente não se importa em pagar US $ 7 por mês (no momento da redação), agora pode ter módulos privados do NPM prontos para uso.
fonte
FWIW: Eu tive problemas com todas essas respostas ao lidar com um repositório de organização privada.
O seguinte funcionou para mim:
Por exemplo:
Não sei ao certo por que as outras respostas não funcionaram para mim neste caso, porque foram as que tentei primeiro antes de acessar o Google e encontrar essa resposta. E as outras respostas são o que eu fiz no passado.
Espero que isso ajude outra pessoa.
fonte
https://
, e assegurar a senha não é necessária na segunda corrida Então você é bom para ir.!)Eu tive esse mesmo problema e, depois de algumas pesquisas, encontrei o Reggie ( https://github.com/mbrevoort/node-reggie ). Parece bastante sólido. Permite a publicação leve de módulos NPM em servidores privados. Não é perfeito (sem autenticação na instalação), e ainda é muito jovem, mas eu o testei localmente, e parece fazer o que ele diz que deve fazer.
Isso é ... (e isso apenas dos documentos)
então cd no diretório do módulo e ...
finalmente, você pode instalar pacotes do reggie apenas usando essa url em um comando direto do npm install ou de dentro de um package.json ...
ou..
fonte
Estruture seu código de maneira acessível, como abaixo. Se isso é possível para você.
Em MainApp @ NodProjs \ Apps \ MainApp \
Pode ser necessário atualizar o package.json como:
Isso funcionou para a minha situação.
fonte
O Npm agora oferece módulos hospedados privados ilimitados por US $ 7 / usuário / mês, usados dessa forma
no seu pacote json set
"name": " @username/private-project"
depois, para exigir seu projeto:
fonte
Começando com a resposta do arcseldon , descobri que o nome da equipe era necessário no URL da seguinte forma:
E observe que a chave da API está disponível apenas para a equipe, não para usuários individuais.
fonte
Configure para instalar a partir do repositório público do Github, mesmo se a máquina estiver sob firewall:
fonte
Eu uso o seguinte com um repositório privado do github:
fonte
Era isso que eu estava procurando :
fonte
Você pode usar o Verdaccio para esse fim, que é um registro proxy npm privado leve, construído em Node.js. Também é gratuito e de código aberto. Ao usar o Verdaccio, ele não envolve tanta trabalheira quanto um registro simples do npm privado.
Você pode encontrar informações detalhadas sobre como instalar e executá-lo em seu site, mas aqui estão as etapas:
Exige
node >=8.x
.Ele também possui uma janela de encaixe, para que você possa publicá-la com facilidade na sua janela de encaixe disponível publicamente, e voilá, você possui um repositório npm privado que pode ser distribuído para outras pessoas de uma maneira que você a configura!
fonte
Muito simples -
Na verdade, define
registry = "https://path-to-your-registry"
esta linha para/Users/<ur-machine-user-name>/.npmrc
Todo o valor que você definiu explicitamente ou foi definido por padrão pode ser visto por:
npm config list
fonte