Como instalar um módulo NPM privado sem o meu próprio registo?
Posso apenas instalar um módulo NPM que se encontra no sistema de ficheiros local, ou talvez mesmo do git?
npm install --from-git git@server:project
12 answers
cd somedir
npm install .
Ou
npm install path/to/somedir
somedir
deve conter o package.json
dentro dele.
Ele também sabe do git:
npm install git://github.com/visionmedia/express.git
Nos seusmódulos npm privados Adicionar
"private": true
Ao seu pacote.json
Depois, para referenciar o módulo privado noutro módulo, use isto no seu pacote.json
{
"name": "myapp",
"dependencies": {
"private-repo": "git+ssh://[email protected]:myaccount/myprivate.git#v1.0.0",
}
}
Podes, sim! Do docs https://docs.npmjs.com/cli/installPosso apenas instalar um pacote NPM que se encontra no sistema de ficheiros local, ou talvez mesmo do git?
O MPN Não é brilhante?Um pacote é:
- a) uma pasta que contém um programa descrito por um pacote.ficheiro JSON
- B) uma tarball com borrachos contendo (a)
- c) um url que se resolve a (b)
- d) A
<name>@<version>
que é publicada na secretaria com (c)- e) a {[1] } que aponta para d)
- f) a {[2] } que tem uma etiqueta" mais recente " que satisfaz (e)
- g) a {[3] } que se resolve a (b)
Actualizar Janeiro 2016
além de outras respostas {[[9]}, às vezes existe o cenário em que você deseja ter módulos privados disponíveis em um contexto de equipe.
Ambos Github e Bitbucket suportam o conceito de gerar uma equipa API Key . Esta chave de API pode ser usada como a senha para executar pedidos de API como esta equipa.
Nos seusmódulos npm privados Adicionar
"private": true
Ao seu pacote.json
Depois, para referenciar o módulo privado noutro módulo, use isto no seu pacote.json
{
"name": "myapp",
"dependencies": {
"private-repo":
"git+https://myteamname:[email protected]/myprivate.git",
}
}
Where team name = myteamname , and API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
Aqui eu faço referência a um acordo de bitbucket, mas é quase idêntico usando github também.Finalmente, como alternativa, se realmente não se importa de pagar $7 por mês (a partir da escrita) então você pode agora ter módulos npm privados de caixa.
FWIW: eu tive problemas com todas essas respostas quando lidava com um repositório de organizações privadas.
O seguinte funcionou para mim:
npm install -S "git+https://[email protected]/orgname/repositoryname.git"
Por exemplo:
npm install -S "git+https://[email protected]/netflix/private-repository.git"
Não sei bem porque é que as outras respostas não funcionaram para mim neste caso, porque foram o que tentei primeiro antes de ir ao Google e encontrar esta resposta. E as outras respostas são o que fiz no passado.
Espero que isto ajude outra pessoa.npm install -g reggie
reggie-server -d ~/.reggie
Depois cd para a pasta do módulo e...
reggie -u http://<host:port> publish
reggie -u http://127.0.0.1:8080 publish
Finalmente, você pode instalar pacotes de reggie apenas usando esse url em um comando direto de instalação npm, ou de dentro de um pacote.json... assim.
npm install http://<host:port>/package/<name>/<version>
npm install http://<host:port>/package/foo/1.0.0
Ou..
dependencies: {
"foo": "http://<host:port>/package/foo/1.0.0"
}
Estruture o seu código de uma forma acessível como em baixo. Se isto for possível para ti.
NodeProjs\Apps\MainApp\pacote.json
NodeProjs\Modules\datamodule\package.json
No MainApp @ NodProjs\Apps\MainApp\
npm install --S ../../Modules/DataModule
Você pode precisar atualizar o pacote.json as:
"dependencies": {
"datamodule": "../../Modules/DataModule"
}
Isto funcionou para a minha situação.
Começando com a resposta de arcseldon , descobri que o nome da equipa era necessário na URL como assim:
npm install --save "git+https://myteamname@[email protected]/myteamname/myprivate.git"
E note que a chave API só está disponível para a equipa, não para utilizadores individuais.
O MPN oferece agora módulos ilimitados privados hospedados para $7 / utilizador / mês usado como so
cd private-project
npm login
Na embalagem json set "name": " @username/private-project"
npm publish
Então para requerer o seu projecto:
cd ../new-project
npm install --save @username/private-project
Configuração para instalar a partir do repositório público de Github, mesmo que a máquina esteja sob firewall:
dependencies: {
"foo": "https://github.com/package/foo/tarball/master"
}
Uso o seguinte com um repositório privado do github:
npm install github:mygithubuser/myproject
Muito simples -
npm config set registry https://path-to-your-registry/
Ele realmente define registry = "https://path-to-your-registry"
Esta linha para /Users/<ur-machine-user-name>/.npmrc
Todo o valor que definiu explicitamente ou que foi definido por omissão pode ser visto por - npm config list