Errore: impossibile trovare il modulo '../lib/utils/unsupported.js' durante l'utilizzo di Ionic


262

Ricevo sempre questo messaggio di errore quando eseguo "Ionic start project name":

Messaggio di errore

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)

Il percorso relativo è sbagliato ..
Subburaj,

controlla il percorso in ./bash_profile
Mohan Gopi il

Su MacOS - reinstallazione da nodejs.org aiuta vedere i upvotes di stackoverflow.com/a/12313655/1497139
Wolfgang Fahl

Risposte:


774

Prova a rimuovere /usr/local/lib/node_modules/npme reinstallare di nuovo il nodo. Questo dovrebbe funzionare.

Su MacOS con Homebrew :

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

1
se qualcuno vuole arrivarci tramite finder: knowledge.autodesk.com/support/smoke/tro
troubleshooting

13
Se si utilizza brew, è possibile utilizzare: brew unistall --force nodeebrew install node
Nico

15
@Nico il primo comando ha un refuso. La correzione sarà brew uninstall --force node.
Jayant Bhawal,

11
perché sta succedendo?
Gaurav Paliwal,

4
Dopo aver eseguito i comandi precedenti, ora ottengo >> -bash: / usr / local / bin / npm: nessun file o directory simile
Tarun

81

Ho seguito le risposte precedenti e ho reinstallato il nodo. Ma ho questo errore.

Avviso: il passaggio successivo all'installazione non è stato completato correttamente. È possibile riprovare utilizzando brew postinstall node

Quindi ho eseguito questo comando

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

Quindi corse

brew postinstall node

in alternativa puoi eseguire sudo chown -R $ (whoami) $ (brew --prefix) / *
Pathfinder il

27

Ho ricevuto un errore simile e ora funziona.

Per prima cosa assicurati di avere l'ultima versione

brew update

Rimuovi la tua precedente istanza di nodo:

brew uninstall node

Quindi reinstallare l'ultima versione:

brew install node

E poi assicurati che sia linkato in / usr / local se non lo è già. Verrà visualizzato un errore per informarti di completare questo passaggio.

brew link --overwrite node 

Sono inoltre disponibili ulteriori dettagli su come installare / aggiornare il nodo .


12
Puoi usare brew uninstall --ignore-dependencies nodese, ad esempio, hai yarnnel tuo sistema.
Sound Blaster,

18

Su Mac OS X (10.12.6), ho risolto questo problema procedendo come segue:

brew uninstall --force node
brew install node

Ho quindi ricevuto un errore in cui si lamentava che il nodo postinstallazione non è riuscito e che è stato eseguito nuovamente brew postinstall node

Ho quindi ricevuto un errore:

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

Ho risolto questo errore:

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

E ora non ho più questo errore.


1
Ho dovuto ripeterlo alcune volte, su cartelle diverse che dovevano essere create o che era necessario cambiare la loro proprietà (per il mio utente). Ogni volta che corro brew postinstall nodeper trovare il problema successivo, risolvilo, ripeti.
T. Kim Nguyen,

9

Se stai utilizzando la libreria "n" @ https://github.com/tj/n . Eseguire le seguenti operazioni

  echo $NODE_PATH

Se il percorso del nodo è vuoto, allora

sudo n latest    - sudo is optional depending on your system

Dopo aver cambiato le versioni di Node.js usando n, npm potrebbe non funzionare correttamente.

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

Ora dovresti vedere il tuo percorso del nodo. Altrimenti, potrebbe essere qualcos'altro


8

Come menzionato prima.

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

6

Ho provato tutte le risposte sull'installazione della birra precedente / precedente, nessuna funziona per il mio laptop.

Solo il metodo seguente potrebbe risolvere il mio problema.

1) Eseguire i seguenti comandi:

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

2) Quindi, passare al sito Web ufficiale di Node.js https://nodejs.org/en/download/current/ per scaricare l'ultimo pacchetto per la nuova installazione.

3) Eseguire di nuovo il comando npm, che dovrebbe contenere più errori.

Questo metodo funziona su macOS Mojave versione 10.14.4 .



2

Sì, è necessario reinstallare il nodo:

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

2

Segui semplicemente tre passaggi;

  1. Svuota la npmcache con forza:

    npm cache clean -f

  2. Installa il npacchetto a livello globale usando npm:

    npm install -g n

  3. Installa da una delle tre opzioni:

    un. 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)


2

L'errore Cannot find module '../lib/utils/unsupported.js'è causato da require('../lib/utils/unsupported.js')in ./lib/node_modules/npm/bin/npm-cli.js.

Secondo i requiredocumenti nodejs , il modulo richiesto viene cercato relativamente al file, come inizia con ../.

Pertanto, se prendiamo il percorso relativo a ../lib/utils/unsupported.jspartire da ./lib/node_modules/npm/bin/npm-cli.js, il modulo richiesto deve risiedere in ./lib/node_modules/npm/lib/utils/unsupported.js. Se non è presente, vedo due opzioni:

  • l'installazione è corrotta, nel qual caso la risposta di Vincent Ducastel al nodo di reinstallazione potrebbe funzionare
  • npmnon è un link simbolico a ./lib/node_modules/npm/bin/npm-cli.js. Questo è ciò che ha causato l'errore nella mia configurazione. Se chiami npm, in genere troverà che lo sta cercando nelle directory elencate in PATHvar var. Ad esempio, potrebbe trovarsi in ./bin. Tuttavia, npmin una ./bindirectory dovrebbe essere presente solo un link simbolico al suddetto ./lib/node_modules/npm/bin/npm-cli.js. Se non è un collegamento simbolico ma contiene direttamente il codice, da qualche parte nel processo di installazione il collegamento simbolico è stato sostituito dal file a cui si collega. In questo caso, dovrebbe essere sufficiente ricreare il collegamento simbolico:cd ./bin; rm npm; ln -s npm ./lib/node_modules/npm/bin/npm-cli.js

Tutte le risposte che suggeriscono di verificare la configurazione NODE_PATHo npmrcdevono essere ignorate, poiché non vengono prese in considerazione nella ricerca dei moduli relativamente.


1

Ho riscontrato questo errore mescolando i metodi di installazione / aggiornamento: nodo installato tramite il download del pacchetto dal sito Web e successivamente ho usato brew per l'aggiornamento.

Ho risolto disinstallando la versione brew:

brew uninstall - nodo nodi-dipendenze

Quindi sono tornato al sito Web del nodo e scaricato e installato tramite il gestore dei pacchetti: https://nodejs.org/en/download/ Per qualche motivo, nessuna quantità di tentativi di reinstallazione tramite brew ha funzionato.


0

Nel mio caso mancava $ 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"

Per controllare solo echo $NODE_PATHvuoto significa che non è impostato. Si consiglia di aggiungerli a .bashrc.


0

Su fedora 27 ho risolto il problema facendo questo:

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

0

Questo è un utile video e post sul blog sulla rimozione del nodo dal sistema operativo del tuo computer. È un metodo di rimozione diverso in base al modo in cui è stato installato il nodo (file brew vs. binary scaricato da https://nodejs.org/en/

  • se hai installato il nodo con Homebrew, allora il nodo di disinstallazione brew funzionerà. Verifica che eseguendo un node -vcomando nel tuo terminale.

  • In caso contrario, e se è stato installato il file binario dal sito web di nodeJS allora dovete eseguire questo comando nel terminale: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}. Ancora una volta, verifica che eseguendo un comando node -v.

  • In entrambi i casi, la rimozione corretta del nodo dovrebbe far sì che bash non riconosca quale nodo è se viene rimosso completamente


2
Un collegamento a una soluzione è il benvenuto per supportare una risposta, ma la risposta che pubblichi dovrebbe essere completamente autonoma, ovvero non richiedere ai visitatori di fare clic su un altro sito che potrebbe contenere contenuti imprevisti o dannosi o non esistere più.
tripleee

0

Nel mio macOS (10.13.3), l'ho risolto dopo aver reinstallato Node Version Manager .

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

0

Questo può accadere quando la npm/libcartella è stata svuotata per qualche motivo (potrebbe anche accadere a causa di problemi di autorizzazione nell'ultimo utilizzo).

Una reinstallazione del nodo potrebbe risolvere il problema (come indicato in altre risposte qui), ma suggerirei di utilizzare uno strumento meraviglioso chiamato nvm(Node Version Manager), che è in grado di gestire più versioni di nodee npm- questo è principalmente utile su macchine dev con più di un progetto richiedono versioni diverse di nodo.

Quando installi nvm , questo messaggio scompare e avrai l'ultima versione di nodee npmda usare.

Per visualizzare l'elenco delle versioni dei nodi attualmente installate nel tuo nvm, esegui semplicemente:

nvm list

Per installare e utilizzare una nuova versione del nodo, eseguire:

nvm install <node_version>

Ad esempio per installare l'ultima versione del nodo 10.x, eseguire:

nvm install 10

Per passare alla versione attualmente installata, eseguire:

nvm use <node_version>

Per passare alla versione del nodo originale del sistema, basta eseguire:

nvm use system

Spero che questo ti aiuti.

In bocca al lupo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.