Fehler: Das Modul '../lib/utils/unsupported.js' kann bei Verwendung von Ionic nicht gefunden werden

262

Ich erhalte immer diese Fehlermeldung, wenn ich "Ionic Start Project Name" ausführe:

Fehlermeldung

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
quelle
Der relative Pfad ist falsch ..
Subburaj
Überprüfen Sie den Pfad in ./bash_profile
Mohan Gopi
Unter MacOS - Neuinstallation von nodejs.org hilft, die Upvotes von stackoverflow.com/a/12313655/1497139
Wolfgang Fahl

Antworten:

772

Versuchen Sie, den /usr/local/lib/node_modules/npmKnoten zu entfernen und erneut zu installieren. Das sollte funktionieren.

Unter MacOS mit Homebrew :

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
Vincent Ducastel
quelle
1
Wenn jemand über den Finder dorthin gelangen möchte: Knowledge.autodesk.com/support/smoke/troubleshooting/caas/…
A.com
13
Wenn Sie Brew verwenden, können Sie Folgendes verwenden: brew unistall --force nodeundbrew install node
Nico
15
@Nico der erste Befehl hat einen Tippfehler. Die Korrektur wird sein brew uninstall --force node.
Jayant Bhawal
11
warum passiert es
Gaurav Paliwal
4
Nachdem Sie die obigen Befehle ausgeführt haben, erhalten Sie jetzt >> -bash: / usr / local / bin / npm: Keine solche Datei oder kein solches Verzeichnis
Tarun
81

Ich folgte den vorherigen Antworten und installierte den Knoten neu. Aber ich habe diesen Fehler bekommen.

Warnung: Der Schritt nach der Installation wurde nicht erfolgreich abgeschlossen. Sie können es erneut versuchen brew postinstall node

Also habe ich diesen Befehl ausgeführt

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

Dann rannte

brew postinstall node
taktische Bewegungsphase
quelle
Alternativ können Sie Sudo Chown -R $ (whoami) $ (Brew
Pathfinder
27

Ich habe einen ähnlichen Fehler erhalten und jetzt funktioniert er.

Stellen Sie zunächst sicher, dass Sie die neueste Version haben

brew update

Entfernen Sie Ihre vorherige Instanz des Knotens:

brew uninstall node

Installieren Sie dann die neueste Version neu:

brew install node

Und stellen Sie dann sicher, dass es mit / usr / local verknüpft ist, falls dies noch nicht geschehen ist. Sie erhalten eine Fehlermeldung, um diesen Schritt auszuführen.

brew link --overwrite node 

Weitere Informationen zum Installieren / Aktualisieren des Knotens finden Sie ebenfalls .

Denae
quelle
12
Sie können verwenden, brew uninstall --ignore-dependencies nodewenn Sie beispielsweise yarnin Ihrem System haben.
Sound Blaster
18

Unter Mac OS X (10.12.6) habe ich dieses Problem folgendermaßen behoben:

brew uninstall --force node
brew install node

Ich habe dann eine Fehlermeldung erhalten, dass der Knoten nach der Installation fehlgeschlagen ist und erneut ausgeführt werden muss brew postinstall node

Ich habe dann einen Fehler bekommen:

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

Ich habe diesen Fehler behoben durch:

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

Und jetzt bekomme ich diesen Fehler nicht mehr.

George Stocker
quelle
1
Ich musste dies einige Male in verschiedenen Ordnern wiederholen, die entweder erstellt werden mussten oder deren Eigentümer geändert werden mussten (für meinen Benutzer). Jedes Mal, wenn ich rannte brew postinstall node, um das nächste Problem zu finden, das zu beheben, wiederholen.
T. Kim Nguyen
9

Wenn Sie die Bibliothek "n" unter https://github.com/tj/n verwenden . Mach Folgendes

  echo $NODE_PATH

Wenn der Knotenpfad leer ist, dann

sudo n latest    - sudo is optional depending on your system

Nach dem Umschalten der Node.js-Versionen mit n funktioniert npm möglicherweise nicht richtig.

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

Sie sollten jetzt Ihren Knotenpfad sehen. Sonst könnte es etwas anderes sein

phil
quelle
8

Wie bereits erwähnt.

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

Versucht alle oben genannten / ältere Brauinstallationsantworten, keiner funktioniert für meinen Laptop.

Nur die folgende Methode konnte mein Problem beheben.

1) Führen Sie folgende Befehle aus:

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

2) Fahren Sie dann mit der offiziellen Website von Node.j https://nodejs.org/en/download/current/ fort , um das neueste Paket für die Neuinstallation herunterzuladen.

3) Führen Sie Ihren Befehl npm erneut aus, der länger fehlerfrei sein sollte.

Diese Methode funktioniert unter macOS Mojave Version 10.14.4 .

Jerry Chong
quelle
5

https://nodejs.org/en/

Laden Sie einfach den Knoten von der offiziellen Website herunter, das hat bei mir funktioniert! :) :)

C Williams
quelle
2

Ja, Sie sollten den Knoten neu installieren:

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

Folgen Sie einfach drei Schritten;

  1. Klar npmcachen mit Nachdruck:

    npm cache clean -f

  2. Installieren Sie das nPaket global mit npm:

    npm install -g n

  3. Installieren Sie aus einer von drei Optionen:

    ein. 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
quelle
2

Der Fehler Cannot find module '../lib/utils/unsupported.js'wird durch require('../lib/utils/unsupported.js')in verursacht ./lib/node_modules/npm/bin/npm-cli.js.

Gemäß den NodeJS- requireDokumenten wird das erforderliche Modul relativ zu der Datei durchsucht, wie es beginnt ../.

Wenn wir also den relativen Pfad ../lib/utils/unsupported.jsab nehmen ./lib/node_modules/npm/bin/npm-cli.js, muss sich das erforderliche Modul in befinden ./lib/node_modules/npm/lib/utils/unsupported.js. Wenn es nicht da ist, sehe ich zwei Möglichkeiten:

  • Die Installation ist beschädigt. In diesem Fall funktioniert möglicherweise die Antwort von Vincent Ducastel auf die Neuinstallation des Knotens
  • npmist kein Symlink zu ./lib/node_modules/npm/bin/npm-cli.js. Dies hat den Fehler in meinem Setup verursacht. Wenn Sie aufrufen npm, wird normalerweise festgestellt, dass es in den in der PATHenv var aufgeführten Verzeichnissen durchsucht wird . Es könnte sich zum Beispiel in befinden ./bin. In npmeinem ./binVerzeichnis sollte sich jedoch nur ein Symlink zu dem oben genannten befinden ./lib/node_modules/npm/bin/npm-cli.js. Wenn es sich nicht um einen Symlink handelt, sondern direkt den Code enthält, wurde der Symlink irgendwo im Installationsprozess durch die Datei ersetzt, auf die er verweist. In diesem Fall sollte es ausreichen, den Symlink neu zu erstellen:cd ./bin; rm npm; ln -s npm ./lib/node_modules/npm/bin/npm-cli.js

Alle Antworten, die eine Überprüfung der NODE_PATHoder der npmrcKonfiguration vorschlagen, sollten ignoriert werden, da diese bei der relativen Suche nach Modulen nicht berücksichtigt werden.

franzlst
quelle
1

Ich habe diesen Fehler durch Mischen der Installations- / Aktualisierungsmethoden erhalten: Installierter Knoten durch Herunterladen des Pakets von der Website und später habe ich Brew zum Aktualisieren verwendet.

Ich habe das Problem behoben, indem ich die Brühversion deinstalliert habe:

Brew Deinstallieren --ignore-Abhängigkeiten Knoten

Dann ging ich zurück zur Node-Website und lud sie über den Paketmanager herunter und installierte sie: https://nodejs.org/en/download/ Aus irgendeinem Grund funktionierte kein Versuch, eine Neuinstallation über Brew durchzuführen.

jleatham
quelle
0

In meinem Fall fehlte $ 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"

Nur echo $NODE_PATHleer zu prüfen bedeutet, dass es nicht gesetzt ist. Das Hinzufügen zu .bashrc wird empfohlen.

Skorphen
quelle
0

Auf Fedora 27 habe ich das Problem folgendermaßen gelöst:

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

Dies ist ein hilfreiches Video und ein Blogbeitrag zum Entfernen von Knoten von Ihrem Computer-Betriebssystem. Es handelt sich um eine andere Methode zum Entfernen, die davon abhängt, wie Sie den Knoten zuerst installiert haben (Brew vs. Binärdatei, heruntergeladen von https://nodejs.org/en/).

  • Wenn Sie den Knoten mit Homebrew installiert haben, funktioniert der Brew-Deinstallationsknoten. Überprüfen Sie dies, indem Sie einen node -vBefehl in Ihrem Terminal ausführen.

  • Andernfalls und wenn Sie die Binärdatei von der Website von nodeJS installiert haben, müssen Sie diesen Befehl in Ihrem Terminal ausführen : sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}. Überprüfen Sie dies erneut, indem Sie einen Befehl node -v ausführen.

  • In beiden Fällen sollte das erfolgreiche Entfernen des Knotens dazu führen, dass bash nicht erkennt, was ein Knoten ist, wenn er vollständig entfernt wird

oalbacha
quelle
2
Ein Link zu einer Lösung ist willkommen, um eine Antwort zu unterstützen. Die Antwort, die Sie veröffentlichen, sollte jedoch vollständig in sich geschlossen sein. Das heißt, Besucher müssen nicht auf eine andere Website klicken, die unerwartete oder böswillige Inhalte enthält oder überhaupt nicht mehr vorhanden ist.
Tripleee
0

In meinem macOS (10.13.3) wurde es nach der Neuinstallation des Node-Versionsmanagers behoben .

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

Dies kann passieren, wenn der npm/libOrdner aus irgendeinem Grund geleert wurde (kann auch aufgrund von Berechtigungsproblemen bei der letzten Verwendung auftreten).

Eine Neuinstallation des Knotens könnte das Problem lösen (wie in anderen Antworten hier angegeben), aber ich würde vorschlagen, ein wunderbares Tool namens nvm(Node Version Manager) zu verwenden, das mehrere Versionen von nodeund verwalten kann npm- dies ist hauptsächlich auf Entwicklungsmaschinen nützlich Bei mehr als einem Projekt sind unterschiedliche Versionen des Knotens erforderlich.

Wenn Sie nvm installieren , wird diese Meldung ausgeblendet und Sie haben die neueste Version von nodeund npmzur Verwendung.

Führen Sie einfach Folgendes aus, um die Liste der aktuell installierten Knotenversionen in Ihrem NVM anzuzeigen:

nvm list

Führen Sie Folgendes aus, um eine neue Knotenversion zu installieren und zu verwenden:

nvm install <node_version>

Führen Sie beispielsweise Folgendes aus, um die neueste Version von Knoten 10.x zu installieren:

nvm install 10

Führen Sie Folgendes aus, um zur aktuell installierten Version zu wechseln:

nvm use <node_version>

Um zur ursprünglichen Knotenversion des Systems zu wechseln, führen Sie einfach Folgendes aus:

nvm use system

Hoffe das hilft.

Viel Glück!

Slavik Meltser
quelle