Tentar instalar módulos no github resulta em:
Erro ENOENT no package.json.
Reproduzido facilmente usando express:
npm install https://github.com/visionmedia/express
gera erro.
npm install express
trabalho.
Por que não consigo instalar no github?
Aqui está a saída do console:
npm http GET https://github.com/visionmedia/express.git
npm http 200 https://github.com/visionmedia/express.git
npm ERR! not a package /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/tmp.tgz
npm ERR! Error: ENOENT, open '/home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.8.0-23-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/visionmedia/express.git"
npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/guym/dev_env/projects_GIT/proj/somename/npm-debug.log
npm ERR! not ok code 0
github
npm
npm-install
node-modules
guy mograbi
fonte
fonte
"express": "github:visionmedia/express"
à"dependencies"
seçãopackage.json file
, em seguida, executar:npm install
(conforme mencionado abaixo)Respostas:
Porque
https://github.com/visionmedia/express
é o URL de uma página da web e não um módulo npm. Use este sabor:ou esse sabor, se você precisar de SSH:
fonte
git+https://github.com/visionmedia/express.git
usar https em vez de ssh.package.json
arquivo ou então você irá obter este erro:Error: ENOENT, open 'tmp.tgz-unpack/package.json'
.#
que usar um ramo específico do shell, ou seja:npm install git+https://github.com/user/repo.git\#branch
Você também pode fazer
npm install visionmedia/express
a instalação no Githubou
Também há suporte para a instalação diretamente de um Gist, Bitbucket, Gitlab e vários outros formatos especializados. Veja a
npm install
documentação para todos eles.fonte
github.com
apenas.Se o git não estiver instalado, podemos tentar
fonte
master
. Provavelmente mais seguro fazê-lo dessa maneira./tarball/
em primeiro lugarAtualização setembro de 2016
A instalação a partir dos URLs vanilla https github https agora funciona:
EDIÇÃO 1: existem alguns usuários comentando que você não pode fazer isso para todos os módulos porque está lendo em um sistema de controle de origem, que pode muito bem conter código inválido / descompilado / com erros. Portanto, para ficar claro (embora não seja preciso dizer): dado que o código no repositório está em um estado utilizável por npm , agora você pode lo com prazer, diretamente do github
EDIT 2: (21-10-2019) Agora estamos vivendo o "pico Typescript / React / Babel" e, portanto, a compilação JavaScript tornou-se bastante comum. Se você precisar levar em consideração a compilação, consulte
prepare
. Dito isto, os módulos NPM não precisam ser compilados , e é aconselhável supor que a compilação não seja o padrão, especialmente para os módulos de nós mais antigos (e possivelmente também para os novos "ESNext").fonte
dist
pasta e a maioria não. O problema ao qual vinculei é um bug do npm - aprebuild
etapa não é executada durante a instalação do GitHub. Como exemplo, tente instalar o influxo do nó / influxo do nó .dist
pastas PODEM ser instalados no GitHub, por exemplo:npm install https://github.com/fergiemcdowall/search-index-adder
funciona perfeitamente./lib
(como se você tivesse uma pasta dist). Meu argumento é que apenas a inclusão da URL do GitHub de um repositório no package.jons não garante que funcione para a instalação desse repositório. Módulos escritos em TypeScript, por exemplo, precisam enviar o código transpilado para o repositório. Eles normalmente não fazem isso, mas usam um script de pré-publicação para despejar o código .JS em uma pasta dist, que é carregada no npmjs.com.prepare
script para "instalações" simples, o que inclui o git deps. O que significa que os comentários acima sobre pastas de compilação e dist estão desatualizados. Qualquer pacote que configure corretamente sua compilação para execuçãoprepare
funcionará perfeitamente como um depit git sem comprometer nenhum recurso compilado no git.Também há
npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
para usar um ramo diferente.fonte
A principal resposta atual de Peter Lyons não é relevante nas versões recentes do NPM. Por exemplo, usar o mesmo comando que foi criticado nesta resposta agora está bom.
Se você tiver problemas contínuos, pode ser um problema com o pacote que você estava usando.
fonte
Os métodos são abordados muito bem agora na documentação de instalação do npm, bem como nas inúmeras outras respostas aqui.
No entanto, algo notável que mudou recentemente é o npm adicionando o
prepare
script para substituir oprepublish
script. Isso corrige um problema de longa data em que os módulos instalados via git não executavam oprepublish
script e, portanto, não concluíram as etapas de compilação que ocorrem quando um módulo é publicado no registro npm. Vejo https://github.com/npm/npm/issues/3055 .Obviamente, os autores do módulo precisarão atualizar seu package.json para usar a nova
prepare
diretiva para que isso comece a funcionar.fonte
ATUALIZAÇÃO agora você pode fazer:
npm install git://github.com/foo/bar.git
ou em
package.json
:fonte
A forma geral da sintaxe é
o que significa para o seu caso, será
Dos documentos do npmjs:
fonte
Instale-o diretamente:
Como alternativa, você pode adicionar
"express": "github:visionmedia/express"
à"dependencies"
seção dopackage.json
arquivo e executar:fonte
Você também pode fazer
ou
Basicamente:
fonte
Você pode instalar diretamente um repositório do github por
npm install
comando, como este:npm install https://github.com/futurechallenger/npm_git_install.git --save
NOTA: No repositório que será instalado pelo comando npm:
fonte
dist
pasta ou qualquer código de compilação no seu repositório. Você só precisa usar umprepare
scriptpackage.json
.Simples:
exemplo:
fonte
eu tentei
npm install git+https://github.com/visionmedia/express
mas isso demorou muito e eu não tinha certeza se funcionaria.O que funcionou para mim foi -
yarn add git+https://github.com/visionmedia/express
.fonte
Tente este comando
esse comando funcionou para mim.
fonte
~/node_modules
, para que você nunca precise do sudo.