Erro: Não é possível encontrar o módulo '../lib/utils/unsupported.js' enquanto estiver usando o Ionic

262

Eu sempre recebo essa mensagem de erro quando executo "Ionic start project name":

Mensagem de erro

Running command - failed![ERROR] An error occurred while running npm install (exit code 1):

    module.js:471
        throw err;
        ^

    Error: Cannot find module '../lib/utils/unsupported.js'
        at Function.Module._resolveFilename (module.js:469:15)
        at Function.Module._load (module.js:417:25)
        at Module.require (module.js:497:17)
        at require (internal/module.js:20:19)
        at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
        at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
        at Module._compile (module.js:570:32)
        at Object.Module._extensions..js (module.js:579:10)
        at Module.load (module.js:487:32)
        at tryModuleLoad (module.js:446:12)
inxoy
fonte
O caminho relativo é errado ..
Subburaj
verifique o caminho em ./bash_profile
Mohan Gopi
No MacOS, a reinstalação do nodejs.org ajuda a ver os votos positivos de stackoverflow.com/a/12313655/1497139 #
Wolfgang Fahl

Respostas:

774

Tente remover /usr/local/lib/node_modules/npme reinstalar o nó novamente. Isso deve funcionar.

No MacOS com Homebrew :

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
Vincent Ducastel
fonte
1
se alguém quiser chegar lá via Finder: knowledge.autodesk.com/support/smoke/troubleshooting/caas/...
A.com
13
Se você estiver usando fermentação, poderá usar: brew unistall --force nodeebrew install node
Nico
15
@ Nico, o primeiro comando tem um erro de digitação. A correção será brew uninstall --force node.
Jayant Bhawal
11
porque esta acontecendo?
Gaurav Paliwal 9/07
4
Depois de executar os comandos acima, começando agora >> -bash: / usr / / bin local / npm: Nenhum tal lima ou diretório
Tarun
81

Eu segui as respostas anteriores e reinstalei o nó. Mas eu recebi esse erro.

Aviso: A etapa de pós-instalação não foi concluída com êxito. Você pode tentar novamente usando brew postinstall node

Então eu executei este comando

sudo chown -R $(whoami):admin /usr/local/lib/node_modules/

Então correu

brew postinstall node
tacticalmovephase
fonte
Como alternativa, você pode executar o sudo chown -R $ (whoami) $ (brew --prefix) / * #
Pathfinder
27

Recebi um erro semelhante e agora ele está funcionando.

Primeiro, verifique se você tem a versão mais recente

brew update

Remova sua instância anterior do nó:

brew uninstall node

Em seguida, reinstale a versão mais recente:

brew install node

E, em seguida, verifique se ele está vinculado a / usr / local, se ainda não estiver. Você receberá um erro informando que você deve concluir esta etapa.

brew link --overwrite node 

Mais detalhes sobre como instalar / atualizar o nó também estão disponíveis .

Denae
fonte
12
Você pode usar brew uninstall --ignore-dependencies nodese, por exemplo, tiver yarnem seu sistema.
Sound Blaster
18

No Mac OS X (10.12.6), resolvi esse problema fazendo o seguinte:

brew uninstall --force node
brew install node

Em seguida, recebi um erro ao reclamar que a pós-instalação do nó falhou e para executar novamente brew postinstall node

Eu recebi um erro:

permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx

Resolvi esse erro:

sudo chown -R $(whoami):admin /usr/local/lib/node_modules

E agora não recebo mais esse erro.

George Stocker
fonte
1
Eu tive que repetir isso algumas vezes, em pastas diferentes que precisavam ser criadas ou que tiveram sua propriedade alterada (para meu usuário). Cada vez que eu corria brew postinstall nodepara encontrar o próximo problema, corrija isso, repita.
T. Kim Nguyen
9

Se você estiver usando a biblioteca "n", https://github.com/tj/n . Faça o seguinte

  echo $NODE_PATH

Se o caminho do nó estiver vazio, então

sudo n latest    - sudo is optional depending on your system

Após alternar as versões do Node.js. usando n, o npm pode não funcionar corretamente.

curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH

Você deve ver seu caminho do nó agora. Senão, pode ser outra coisa

phil
fonte
8

Como mencionado anteriormente.

 sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node
jackotonye
fonte
6

Tentei todas as respostas acima / mais antigas da instalação do brew, nenhuma está funcionando para o meu laptop.

Somente o método abaixo poderia corrigir meu problema.

1) Execute os seguintes comandos:

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node      

2) Em seguida, continue no site oficial do Node.js. https://nodejs.org/en/download/current/ para baixar o pacote mais recente para a nova instalação.

3) Execute seu comando npm novamente, o que deve ter mais erros.

Este método está funcionando no macOS Mojave versão 10.14.4 .

Jerry Chong
fonte
5

https://nodejs.org/en/

Basta baixar o nó do site oficial, isso funcionou para mim! :)

C Williams
fonte
2

Sim, você deve reinstalar o nó:

sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node
Walterwhites
fonte
2

Simplesmente siga três etapas;

  1. Limpe o npmcache com força:

    npm cache clean -f

  2. Instale o npacote globalmente usando npm:

    npm install -g n

  3. Instale a partir de qualquer uma das três opções:

    uma. sudo n stable (get the stable version)

    b. sudo n latest (get the latest version of node)

    c. sudo n x.x.x (get the specific version of node)

Laxmikanta Nayak
fonte
2

O erro Cannot find module '../lib/utils/unsupported.js'é causado por require('../lib/utils/unsupported.js')in ./lib/node_modules/npm/bin/npm-cli.js.

De acordo com a requiredocumentação do nodejs , o módulo necessário é pesquisado em relação ao arquivo, conforme ele começa ../.

Portanto, se pegarmos o caminho relativo a ../lib/utils/unsupported.jspartir de ./lib/node_modules/npm/bin/npm-cli.js, o módulo necessário deverá residir ./lib/node_modules/npm/lib/utils/unsupported.js. Se não estiver lá, vejo duas opções:

  • a instalação está corrompida; nesse caso, a resposta de Vincent Ducastel para reinstalar o nó pode funcionar
  • npmnão há ligação simbólica para ./lib/node_modules/npm/bin/npm-cli.js. Foi isso que causou o erro na minha instalação. Se você telefonar npm, normalmente o procurará nos diretórios listados na PATHvar env. Pode, por exemplo, estar localizado em ./bin. No entanto, npmem um ./bindiretório, deve haver apenas um link simbólico para o mencionado acima ./lib/node_modules/npm/bin/npm-cli.js. Se não for um link simbólico, mas contiver diretamente o código, em algum lugar do processo de instalação o link simbólico foi substituído pelo arquivo ao qual ele vincula. Nesse caso, deve ser suficiente recriar o link simbólico:cd ./bin; rm npm; ln -s npm ./lib/node_modules/npm/bin/npm-cli.js

Todas as respostas que sugerem verificar a configuração NODE_PATHou npmrcdevem ser ignoradas, pois elas não são consideradas ao pesquisar relativamente os módulos.

Franzlst
fonte
1

Eu recebi esse erro misturando os métodos de instalação / atualização: nó instalado via pacote de download do site e, mais tarde, usei o brew para atualizar.

Corrigi, desinstalando a versão brew:

nó de desinstalação --ignore-dependencies do brew brew

Voltei ao site do nó, baixei e instalei através do gerenciador de pacotes: https://nodejs.org/en/download/ Por alguma razão, nenhuma tentativa de reinstalação via brew funcionou.

jleatham
fonte
0

No meu caso, faltava $ NODE_PATH:

NODE="/home/ubuntu/local/node" #here your user account after home
NODE_PATH="/usr/local/lib/node_modules" 
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules"

Verificar apenas echo $NODE_PATHvazio significa que não está definido. Adicione-os ao .bashrc é recomendado.

SkorpEN
fonte
0

No fedora 27, resolvi o problema fazendo o seguinte:

sudo rm -f  /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs
tbo47
fonte
0

Esta é uma publicação de vídeo e blog útil sobre como remover o nó do SO do computador. É um método diferente de remoção, com base em como você instalou o nó em primeiro lugar (arquivo binário x arquivo binário baixado de https://nodejs.org/en/

  • se você instalou o nó com o Homebrew, o nó de desinstalação do brew funcionará. Verifique isso ao executar um node -vcomando no seu terminal.

  • Caso contrário, e se você tiver instalado o arquivo binário do site da NodeJS então você tem que executar este comando em seu terminal: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}. Novamente, verifique se, executando um comando node -v.

  • Nos dois casos, a remoção bem-sucedida do nó deve resultar no bash, não reconhecendo o que é o nó se for completamente removido.

oalbacha
fonte
2
Um link para uma solução é bem-vindo para dar suporte a uma resposta, mas a resposta que você postar deve ser completamente independente, ou seja, não exige que os visitantes cliquem em outro site que possa conter conteúdo inesperado ou malicioso ou que não exista mais.
Tripleee
0

No meu macOS (10.13.3), eu o resolvi depois de reinstalar o gerenciador de versões do Node .

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc
user9869932
fonte
0

Isso pode acontecer quando a npm/libpasta é esvaziada por algum motivo (também pode ocorrer devido a problemas de permissão no último uso).

Uma reinstalação do nó pode resolver o problema (conforme indicado em outras respostas aqui), mas eu sugeriria o uso de uma ferramenta maravilhosa chamada nvm(Node Version Manager), capaz de gerenciar várias versões do nodee npm- isso é útil principalmente em máquinas de desenvolvimento com mais de um projeto requerem versões diferentes do nó.

Quando você instala o nvm , esta mensagem desaparece e você terá a versão mais recente nodee npma usar.

Para ver a lista de versões de nó atualmente instaladas no seu nvm, basta executar:

nvm list

Para instalar e usar uma nova versão do nó, execute:

nvm install <node_version>

Por exemplo, para instalar a versão mais recente do nó 10.x, execute:

nvm install 10

Para mudar para a versão atualmente instalada, execute:

nvm use <node_version>

Para mudar para a versão do nó original do sistema, basta executar:

nvm use system

Espero que isto ajude.

Boa sorte!

Slavik Meltser
fonte