Eu sou novo para grunhir e npm. Então, eu estou tentando alguns "exemplos de livros de receitas" no site ' http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer#front_end_developers ' . Você não deveria procurar lá agora, mas achei que seria bom compartilhar o site. Até aí tudo bem, até a instalação global. (Ok, alguns erros eu tive que descobrir, mas agora tenho npm em funcionamento).
Quando se trata de tentar instalar algo globalmente, fico preso.
O que fiz até agora para testar globalmente a instalação de algum pacote:
Diretório de teste criado
grunttest
Dentro desse diretório:
npm install -g jshint
Saída eu posso ver:
npm http GET https://registry.npmjs.org/jshint
npm http 304 https://registry.npmjs.org/jshint
...
npm http 304 https://registry.npmjs.org/string_decoder
C:\Program Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
[email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
Acabei de perceber o 304, que deve estar ok, devido a apenas dizer que o recurso não foi modificado desde a última instalação (alguns minutos antes).
Verificando se o jshint existe com:
`npm -global list`
Resultado:
[email protected] C:\Program Files\nodejs\node_modules\npm
├── [email protected]
├── [email protected]
├─...
├──
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├─┬ [email protected] extraneous
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └─... ├── [email protected]
├── [email protected]
└── [email protected]
**npm ERR! extraneous: [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**
Questões:
- Por que eu recebo o npm ERR! estranho ...?
- O que isso significa?
- Como posso resolver esse problema?
Em formação:
Estou no Windows 7 de uma máquina Windows, usando o cygwin como shell. tentar apenas o jshint ( jshint someTestfile.js
), é claro, não funciona.
Agradecemos antecipadamente, Meru
jshint myfile.js
deve executar o jshintmyfile.js
.grunt-contrib-jshint
tarefa no seuGruntfile.js
. A única coisa que você instala globalmente é onpm i grunt-cli -g
que lhe dá acesso para executar ogrunt
comando para executar aGruntfile.js
. Consulte este guia para obter mais informações: gruntjs.com/getting-startednpm prune
para se livrar delas.npm prune --your-env
1 e 2: significa que você não possui o jshint listado no arquivo package.json do seu projeto, mas que está instalado globalmente. Portanto, não é um grande problema.
3: Para evitar este estranho erro, você pode executar ou re-executar a instalação com a opção
--save
. Isso atualizará automaticamente o arquivo package.json:Ou precisa atualizar manualmente o arquivo package.json com um
"dependencies": {...}
fonte
--save
não funciona junto com-g
. A lista global de pacotes não possui um package.json.Eu resolvi isso fazendo um
npm update
na pasta do pacote pai, que removeu alguns dos pacotes estranhos da lista e depois o feznpm uninstall <package>
para os poucos restantes.Parece ter funcionado, pois não estou recebendo erros depois de fazer isso.
fonte
Eu o resolvi combinando todas as respostas. Inicialmente, instalei o pacote globalmente.
Como o npm instalou esse pacote também globalmente, mas não o adicionou ao meu arquivo package.json local, tive que fazer algo a respeito.
Eu escolho, a solução para remover a local e depois instalá-la globalmente.
Dessa forma, não tenho mais avisos e não estrago o arquivo package.json.
fonte
No meu caso, eu vi esse erro dapm! mensagem estranha no meu terminal cygwin quando fiz um 'npm ls'. Eu pensei que isso era algum tipo de configuração corrompida globalmente depois de ter muitos ajustes. Eu aprendo as seguintes observações aqui:
Eu 'rm package.json' e 'npm ls' não mostram mais a mensagem de erro. Por isso, digo que sempre verifique o local atual quanto à presença da pasta 'node_modules' e do arquivo package.json, porque estes são priorizados primeiro na verificação e, se estiverem ausentes, a verificação continua na pasta pai e assim por diante, e se você tiver consertado muitos trechos de código, poderá ter espalhado muitos e muitos arquivos de pasta node_modules e arquivo package.json. Nada está realmente corrompido aqui, diferente das experiências que tivemos ao fazer o desenvolvimento Java J2EE / eclipse IDE ou durante os dias em que precisamos usar o regedit para alterar as configurações no Windows.
fonte
No meu caso, foi porque o nome do pacote em seu
package.json
arquivo não era o mesmo que o nomepackage.json
da dependência listado no módulo dependente. Meu erro, já que é um novo módulo que eu criei, mas difícil de detectar, já que o npm não dá nenhuma pista.Isso aconteceu ao usar a
dependencies: { "my-module": "file:local-modules/mymodule" }
sintaxe, com um erro de digitação no nome "my-module".fonte
Isso se deve ao fato de seu pacote não estar no seu package.json. Se você adicioná-lo, o problema será resolvido, veja a imagem abaixo:
fonte