npm-cli.js não encontrado ao executar npm

89

Normalmente consigo instalar uma biblioteca usando o npm, mas hoje, ao instalar o yeoman, encontrei esses erros. Por favor, ajude a descobrir a causa raiz.

D:\Works\phonegap\ionic\todo>npm install -g yo
    module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Eu olhei para a pasta:

C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin \

mas não veja a pasta node_modules como o erro descrito.

Também tento encontrar npm-cli.js e ver que está realmente emC:\Program Files\nodejs\node_modules\npm\bin\

user1192476
fonte
quando você instalou o nó?
Mritunjay
1
Desculpe, esqueci de ter reinstalado o node para corrigir este erro, então não há pasta node_modules agora. Mas antes disso eu também verifiquei C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin \ node_mod ules \ mas não vi a pasta npm nela.
user1192476
Eu tenho uma resposta para isso. Postará após 8 horas. Obrigado.
user1192476

Respostas:

104

Acontece que o problema é devido ao caminho errado do nó na variável do sistema. O caminho está apontando para

(Eu realmente não sei quando o modifiquei)

C:\Program Files\nodejs\node_modules\npm\bin

então eu mudo para

C:\Program Files\nodejs

E funciona como um encanto.

user1192476
fonte
16
Tive o mesmo problema. Nunca alterei o caminho, então estou supondo que isso deve ter acontecido quando eu atualizei o Node.
Nils Magne Lunde
Acho que para mim o problema começou a acontecer quando instalei o Electron :(
Charles Walker
4
onde você mudou isso? qual arquivo?
CodeToad
1
Variáveis ​​de ambiente.
Crozeta,
Na versão mais recente, após a atualização, você pode ver os dois caminhos em suas variáveis ​​de ambiente, e o antigo (C: \ Usuários \ YOUR_USER \ AppData \ Roaming \ npm) tem precedência sobre o novo (C: \ Arquivos de programas \ nodejs ) Remover o primeiro resolve o problema para mim.
Shahroq
41

Você precisa executar isso na linha de comando.

SET PATH=C:\Program Files\Nodejs;%PATH%
Prathap Kudupu
fonte
bash shell no Windows
Prathap Kudupu
Tive esse problema quando atualizei minha versão do nó. Sua solução funcionou perfeitamente para mim. Não node_modules
precisei
Que bom que ajudou
Prathap Kudupu
Tive que mover esse caminho ainda mais para cima para dar a ele maior precedência depois de tentar atualizar o npm usando npm (npm -i npm).
Corey Alix
26

Você também pode ter esse problema se em seu caminho tiver C:\Program Files\nodejse C:\Program Files\nodejs\node_modules\npm\bin. Remova o último do caminho

Peter Sun
fonte
4
no caminho onde?
CodeToad
17

Copie o diretório nomeado a npmpartir do caminho do nó instalado (no meu caso, o diretório npm estava disponível em C:\Program Files\nodejs\node_modules).

Navegue C:\Users\%USERNAME%\AppData\Roaming\npm\node_modulese cole o npmdiretório copiado lá.

Este método funcionou para mim quando tive o mesmo erro. . .

Manoj
fonte
3
Obrigado, isso funcionou muito bem depois que uma atualização atrapalhou minha instalação do NPM e o reparo e a reinstalação não corrigiram.
Slbox
16

Acabei de consertar minha instalação do NodeJS e funcionou para mim!

Vá para Control Panel\All Control Panel Items\Programs and Features-> localizar NodeJSe escolher a opção reparar para repará-lo. Espero que isto ajude.

3AK
fonte
1
Isso funcionou para mim, mas é chamado de "aplicativos e recursos" no Windows 10.
PeonProgrammer
Não havia pasta npm em node_modules no meu caso e tudo o que fiz foi executar um comando npm install express, repará-lo ajudou.
Lalit Fauzdar
14

Este não é o mesmo caso da pergunta, mas pode ser útil para alguém que esteja enfrentando um problema semelhante. No Windows, se você estiver chamando npmcomandos de alguma ferramenta de CI / automação, poderá encontrar o erro:

Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'

onde SOME_PATHnão é, Program Files/...mas algum diretório de projeto. Portanto, o npm tenta encontrar npm-cli.js dentro do diretório raiz do projeto em vez de pesquisá-lo Program Files/nodejs.

O motivo é o script npm.cmd:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)


SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

Este script usa %~dp0para pesquisar o npm-cli.js, mas algumas ferramentas de automação podem definir o diretório de trabalho da maneira que %~dp0aponta para o diretório do projeto local, de forma que o script funcione incorretamente.

Uma solução possível poderia ser alterar as chamadas npm deste

npm.cmd install

para isso

cmd.exe /c npm.cmd install
admax
fonte
Se você precisar definir o WorkingDirectory para executar o comando de instalação em um diretório específico, isso não resolverá o problema
Daniel Fisher lennybacon
O que funcionou para mim foi executar um diretório de alteração com o comando npm posteriormente: "cmd.exe" / c cd / d "T: \ TfsAgent_work \ 1 \ s \ src \ WebHost \" && "C: \ Arquivos de programas \ nodejs \ npm.cmd "install
Daniel Fisher lennybacon
7

Nenhuma das outras respostas funcionou para mim.

Aqui está o que escrevo (em um shell git bash no Windows):

PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman
edi9999
fonte
5

Em um Mac:

Eu estava executando isso no plug-in de front-end do Maven com.github.eirslett quando tive o mesmo erro.

Eventualmente, eu tive que:

Instale o Node.js por meio do download do instalador aqui: http://nodejs.org/

Exclua todas as pastas node/e node_modules/de dentro da minha estrutura de compilação do maven.

RedYeti
fonte
2
Parece que isso foi corrigido com as versões mais recentes do plugin de front-
Noremac
5

Além do acima, tive que remover C:\Users\%USERNAME%\AppData\Roaming\npmtambém. Isso ajudou.

Romko
fonte
1
No meu sistema é onde residem os pacotes globais; se você removê-lo do caminho, não será mais possível executar o gulp etc.
TrueWill
5

Eu encontrei o mesmo problema com o nó 8.5 quando instalado com nvm. A solução abaixo funcionou para mim

$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.

$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.5.0

Omkar@VAST-0137 MINGW64 /d/code

Isso funcionou para mim porque o nó 8.5 não foi instalado corretamente antes com nvm. Eu descobri porque as pastas e arquivos "npm \ bin \ npm-cli.js" não foram criados dentro do node_modules antes.

olagu
fonte
Meu caminho parecia OK; Desinstalar / reinstalar resolveu o problema para mim.
Mark Maslar
Tive alguns problemas estranhos com o nó antigo, mesmo quando mudei para a versão mais recente. Então, desinstalei o nó antigo e instalei o novo novamente. Desta forma, resolvi o problema com cli :) obrigado
Andrej Gaspar
5

Não mude nenhuma variável de ambiente

Foi o instalador que causou o problema e não instalou todos os arquivos necessários.

Acabei de reparar a configuração do NODEJS no windows 7 e funciona muito bem. Pode ser que você possa reinstalar, apenas caso algo não funcione.

TARJU
fonte
4

Na verdade, existem 2 caminhos que foram adicionados à variável do seu sistema ao atualizar para a versão mais recente do nodejs.
1. C: \ Arquivos de programas \ nodejs
2. C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin
Para usuários do Windows 7/8 / 8.1, eles não terão uma GUI inteligente do Windows 10 de Variáveis ​​de Ambiente.
De qualquer forma, tudo que você precisa fazer é procurar "C:\Program Files\nodejs\node_modules\npm\bin"e removê-lo.
Além disso, remova "C:\Users\%USERNAME%\AppData\Roaming\npm"de suas variáveis ​​de ambiente. Estou postando essa resposta porque perdi minhas 10 horas procurando a solução na internet. Ao combinar a resposta acima, finalmente resolvo o problema.

Hamzox
fonte
4

Isso começou a acontecer comigo depois que instalei o GoogleChrome / titereiro , a solução foi reinstalar o npm:

$ npm i npm@latest

ou

$ npm install npm@latest
mito
fonte
2

Nenhuma das soluções aqui funcionou para mim, mas depois que reiniciei meu sistema e fiz npm installnovamente, funcionou. Eu acho que um ou mais processos que executei antes o mantiveram.

A reinicialização simples do PC no Windows 10 fez a mágica para mim!

papigee
fonte
Funcionou para mim também! O erro começou provavelmente após uma atualização do Win10
Arno van Oordt
2

Eu tive o mesmo problema no Windows. Acabei de reparar o Node e funcionou bem após reiniciar o comando no windows.

Olá Universo
fonte
1

apenas execute este comando:

npm i npm@latest -g
AissaDevLab
fonte
Bem-vindo ao Stack Overflow! Você poderia explicar o que isso faz e como responde à pergunta?
1

npm install -g npm @ [versão] corrigiu o problema

repo
fonte
1

No Windows 10:

  1. Pressione a tecla windows, digite editar as variáveis ​​de ambiente do sistema e, em seguida, digite.
  2. Clique em variáveis ​​de ambiente ...
  3. Na metade inferior da janela que se abriu com o título Variáveis ​​de ambiente, você verá uma tabela intitulada Variáveis ​​do sistema, com duas colunas, a primeira variável com o título.
  4. Encontre a linha com a variável Path e clique nela.
  5. Clique em editar, que abrirá uma janela intitulada Editar variável do ambiente.
  6. Aqui se você encontrar

C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin

selecione-o e clique no botão editar à sua direita, então edite o campo para o caminho onde você tem a pasta nodejs, no meu caso foi apenas encurtando para:

C: \ Arquivos de programas \ nodejs

Então fechei todos os meus terminais cmd ou PowerShell, abri-os novamente e o npm estava funcionando.

Julio Peguero
fonte
1

Eu sei que é um post mais antigo, mas enquanto escrevo isso, a versão do Node js é 12.13.1. As pessoas enfrentam isso geralmente porque podem já ter instalado uma versão anterior do Node js que adicionou o seguinte ao caminho do sistema.

C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin

No entanto, as versões mais recentes precisam adicionar o seguinte: -

C: \ Arquivos de programas \ nodejs

Quero dizer o caminho onde você instalou o Nodejs. O padrão é

C: \ Arquivos de programas \ nodejs

No entanto, se você forneceu uma localização diferente, você deve apontá-la para ela.

Dhana
fonte
0

Solução para mim no VS2017 (em Ferramentas | Opções ...)

Em Ferramentas |  Opções ...

Mudei o caminho para: C: \ Arquivos de programas \ nodejs

Michael Maier
fonte
0

Tive esse problema ao instalar o node9.0.0 no windows7 no final, a solução era apenas remover npm npm.cmd npx npx.cmd de C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin antes de fazer isso uma solução alternativa era execute C: \ Arquivos de programas \ nodejs \ npm de modo que é uma maneira para ver se você tem o mesmo problema que eu.

Griffin
fonte
0

crie uma pasta npm manualmente dentro de node_modules e execute novamente o instalador com opções de reparo. Ele copia os arquivos ausentes.

Saurabh Nainwal
fonte
0

No meu caso, eu estava usando o nvm-windows 1.1.6 e atualizei minha versão do nodejs usando o nvm install latest, que eventualmente me disse que o nodejs e o npm estão instalados, no entanto, quando tentei fazer npm install, recebi

Erro: Não é possível encontrar o módulo 'C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin \ npm-cli.js'

ao verificar a estrutura do nvm-windows, descobri que C:\Program Files\nodejshavia um link simbólico para %APPDATA%\nvm\NODE_VERSION, (NODE_VERSION era v9.7.1 no meu caso) que não tem a pasta node_modulessem nada dentro, causou este erro. A solução foi copiar a npmpasta de uma das minhas versões anteriores node_modulese colá-la. Em seguida, atualizei meu npm com npm install npm@next -ge tudo começou a funcionar novamente.

Cemal
fonte
0

Para mim, nenhuma das opções acima funcionou, apenas notei que toda vez que faço uma "instalação do npm ...", qualquer comando do npm simplesmente para de funcionar. Portanto, a cada instalação que faço, tenho que executar o programa de instalação do NodeJS e selecionar "reparar". Até eu encontrar uma solução real :)

Olivier
fonte
É bom postar soluções e também agradecemos isso .. Mas seria melhor se você explicasse logicamente ao invés de dizer Magicamente funcionou :)
Aousaf rashid
0

Atualizar o NPM para a versão mais recente funcionou para mim:

npm install npm@latest -g
Zylo
fonte
0

Altere a variável de caminho de ambiente C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin e abra o terminal de comando e npm -v e

lokesh sharma
fonte
0

Para os caras que ainda estão por vir neste tópico:

  • instalar o nó do site oficial (verificar npm e versão do nó para verificar se instalado corretamente, sim em um novo terminal / cmd);
  • instale o nvm agora e quando solicitado para gerenciar o nó atual com o nvm clique em sim;
  • abra um novo cmd e execute o nvm.
Keshav Sharma
fonte
Você não precisa instalar o Node do site oficial com nvm: você pode instalar a versão mais recente do Node com nvm em execução nvm install latest.
Marco Lackovic
0

Eu encontrei exatamente o mesmo problema hoje em um servidor Linux. E o motivo é muito simples, pois não fiz make installdepois makee tentei chamar diretamente o gerado npm. Portanto, o PATH e tudo estava uma bagunça.

Então, para mim, a solução é fazer make installdepois makee executar o npmunder .node/bin/npm.

Yuan Tao
fonte