Este é meu package.json
para o módulo que estou incluindo no projeto pai:
{
"version": "0.0.1",
"name": "module-name",
"dependencies": {
"express": "3.3.4",
"grunt": "0.4.1",
"grunt-contrib-compass": "0.4.0",
"grunt-contrib-copy": "0.4.1",
"grunt-contrib-cssmin": "0.4.1",
"grunt-contrib-jshint": "0.6.3",
"grunt-contrib-requirejs": "0.4.1",
"grunt-contrib-uglify": "0.2.2",
"grunt-contrib-watch": "0.5.1",
"grunt-express-server": "0.4.1",
"grunt-karma": "0.4.5",
"grunt-regex-replace": "0.2.5",
"request": "2.25.0"
},
"scripts": {
"postinstall": "grunt install"
}
}
Uma coisa a observar é que este módulo está contido em um repositório particular e eu o incluo no pai, package.json
como:"module-name": "git+ssh://git@myserver:user/module-name.git"
postinstall
script falha porque locaisgrunt
pacotes não são encontrados como eles não estão instalados por NPMRespostas:
Parece que você encontrou um bug que existe há algum tempo e ainda não tem solução. Existem vários problemas em aberto para este caso no repositório npm:
Na primeira pessoa, liste várias soluções alternativas que você pode tentar.
Uma solução alternativa pode ser (um pouco imprudente) listar explicitamente as dependências como dependentes de primeiro nível. Isso requer que você mantenha a lista, mas na prática ela precisa ser feita com pouca frequência.
fonte
Eu tive um problema muito semelhante, remover a
node_modules
pasta inteira e reinstalar funcionou para mim. Aprendeu esse truque no programa IT Crowd !fonte
npm install
.Eu estou usando a máquina windows.
fonte
se você herdou esse código, pode ser que as dependências e versões estejam bloqueadas e você tenha um arquivo ./npm-shrinkwrap.json.
se sua dependência não estiver listada nesse arquivo, ela nunca será instalada com o
npm install
comandovocê precisará instalar manualmente os pacotes e executar
npm shrinkwrap
para atualizar o arquivo shrinkwrap.fonte
package-lock.json
arquivo após a atualização para o nó 8.0.0 e npm 5.0.0. Depois disso, a execuçãonpm install
só instalaria esse pacote em vez de todas as minhas dependências. A exclusãopackage-lock.json
e a nova execuçãonpm install
resolveram o problema para mim.package-lock.json
estava atrapalhando.Eu suspeito que você esteja enfrentando o problema em que seu
package.json
arquivo não está no mesmo diretório que o seuGruntfile.js
. Ao executar seusgrunt xxx
comandos, você recebe uma mensagem como:Por enquanto, a solução é:
npm install
para carregá-los localmenteIMHO, é triste que não possamos ter módulos de resolução de problemas carregados de um módulo pai npm (por exemplo, package.json em um diretório pai dentro do mesmo projeto). A discussão aqui parece indicar que foi feita para evitar o carregamento de módulos "globais", mas acho que o que queremos é carregar dos módulos "meu projeto".
fonte
Gruntfile.js
e ambos contêmpackage.json
o mesmo nível.grunt
, é uma questão denpm
não instalar recursivamente as dependências no meu projeto de submódulo.OP pode ser verdadeiro para uma versão mais antiga do nó. No entanto, eu enfrentei o mesmo com o nó 4.4.1 também.
Pode muito bem estar vinculado à versão do nó que você está usando. Tente atualizar para uma versão mais recente. Certas dependências não são carregadas transitivamente se forem incompatíveis com a versão do nó.
Eu encontrei isso executando
npm update
.Após a atualização para a versão mais recente (4.4 -> 5.9); isso foi consertado.
fonte
No meu caso, ajudou a remover
node_modules
epackage-lock.json
.Depois disso, basta reinstalar tudo com
npm install
.fonte
Verifique também se o nome do seu pacote foi aceito corretamente:
ERRADO:
CORRIGIR
fonte
Pode ser necessário instalar o grunt-cli, tente isso antes de fazer uma instalação do npm:
Isso corrige o grunhido não sair para mim, você também precisará de um arquivo de grunhido válido.
Fonte: https://stackoverflow.com/a/16456467/241294
fonte
~ ᐅ which grunt /opt/local/bin/grunt
npm install
egrunt install
, ele funciona bem. O problema é que o NPM parece não instalar as dependências dopackage.json
grunt
: quando você instala módulos com o NPM, geralmente ele fornece um verão no final de qualquer dependência desse módulo que já foi instalado; Quando instalo o módulo em questão, não recebo nenhum módulo de dependência instalado.Caso alguém sofra dessa situação e cometa o mesmo erro que eu cometi, eis o que aconteceu no meu caso. Depois de bater minha cabeça contra a parede por uma hora, percebi que meu json estava aninhado incorretamente e a chave "dependências" estava dentro do "repositório" de chaves.
Escusado será dizer que nenhum erro foi evidente e nenhum módulo foi instalado.
fonte
Outra maneira de contornar isso é adicioná-lo à
package.json
seção de scripts do móduloo que isso faz é instalar todos os pacotes necessários ao módulo e você não receberá esse erro.
fonte
acontece com a versão do nó antigo. use a versão mais recente do nó como esta:
$ nvm use 8.0
$ rm -rf node_modules
$ npm install
$ npm i somemodule
editar: também verifique se você
save
.por exemplo:
npm install yourmoduleName --save
fonte
Eu estava recebendo esse erro quando instalei um ambiente de desenvolvimento Node limpo no Windows.
Para corrigir isso, entrei no meu novo diretório de projeto (com o qual acabei de montar
yo angular
) e digitei dois comandos:npm install -g grunt --save-dev
Isso instalará as dependências locais locais no seu projeto. Próximo:
npm install
Isso garantirá que todas as suas (novas) dependências do projeto sejam instaladas.
Tada!
fonte
Vale mencionar para garantir que suas dependências devem estar na sua
dependencies
partepackage.json
(ao contrário dedevDependencies
).Meu problema era basicamente o mesmo que OP:
repo1
) via"module-name": "git+ssh://git@myserver:user/my-repo-name.git"
em outro repositório (vamos chamá-lorepo2
),repo2
'snode_modules
, uma dependência de pacotes derepo1
não estava lá.repo1
estava listando essa dependência emdevDependencies
vez dedependencies
repo1
'spackage.json
a partirdevDependencies
dedependencies
repo2
, tirei minhanode_modules
epackage-lock.json
, fiznpm install
, uma voilà! ... a dependência estava lá!fonte
Eu tive o mesmo problema. Mas na mesma máquina, um projeto tinha um bom package.json, onde todas as minhas dependências foram instaladas com sucesso. E em outro projeto, minhas dependências package.json não foram instaladas, não importa o que eu faça. Eu apenas copiei o package.json e colei naquele outro projeto. E funcionou! A diferença que encontrei foi apenas uma linha vazia no início do arquivo. Não sei ou influencia alguma coisa, talvez algum outro problema. Mas o problema era apenas o arquivo package.json.
fonte
Eu acho que também enfrentei esse problema, e a melhor solução que encontrei foi olhar para o meu console e descobrir o erro que estava sendo lançado. Portanto, li-o atentamente e descobri que o problema era que não especifiquei meu repositório, descrição e nome válido no meu
package.json
. Eu adicionei essas informações e estava tudo bem.fonte