Fehler: Modul 'Webpack' kann nicht gefunden werden


151

Ich fange gerade erst mit dem Webpack an und habe Schwierigkeiten, das Beispiel mit mehreren Einstiegspunkten zu erstellen. Die Datei webpack.config.js im Beispiel enthält die Zeile

 var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");

was für mich mit dem fehler fehlschlägt

Error: Cannot find module '../../lib/optimize/CommonsChunkPlugin'

Beim Durchsuchen habe ich andere Beispiele für die Verwendung des CommonsChunkPlugin mit dem Ausdruck gefunden

var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");

was mit dem Fehler fehlschlägt

ReferenceError: webpack is not defined

Einige weitere Suchen fanden eine Reihe von Beispielen, darunter

var webpack = require('webpack');

und mein Build schlägt jetzt mit fehl

Error: Cannot find module 'webpack'

Ich weiß nicht, wie ich vorgehen soll.


2
Bist du schon mal gelaufen npm install webpack?
Johannes Ewald

Ja. Webpack ist installiert und arbeitet an anderen Beispielen. Beim Versuch, das Plugin für das Beispiel mit mehreren Einstiegspunkten hinzuzufügen, stieß ich auf Probleme.
Ed.

Error: Cannot find module 'webpack'ist ein Knotenfehler. Das hat also nichts mit dem Webpack selbst zu tun (afaict). Es scheint, als würde der Knoten in den falschen Ordnern suchen ...
Johannes Ewald

6
Ich verstehe, npm install -g webpackhat auch bei mir nicht funktioniert. Dies ist jedoch der Fall npm install webpack: Stellen Sie sicher, dass Sie sich beim Aufruf im App-Stammordner befinden, npm install webpackund überprüfen Sie, ob das Modul im node_modulesOrdner vorhanden ist. Es scheint auch , dass die webpackBedürfnisse fsevents(optional) Modul auf Linux - Systemen - ich Windows bin mit so bin ich nicht sicher - versuchen Sie die Installation fseventsauch
AndreiDMS

3
Wie ich oben sagte, funktionierte die globale Installation auch bei mir nicht. Versuchen Sie also, sie webpackim lokalen App-Ordner zu installieren npm install webpack, ohne-g
AndreiDMS

Antworten:


272

Verknüpfen Sie global installierte Pakete mit Ihrem Projekt

npm link webpack

7
Dies ist die einfachste Antwort da draußen.
Thomas W

1
Auf welche Datei wirkt sich diese Einstellung aus? Ich habe keine Änderungen an den JSON-Dateien gesehen. Können Sie bitte näher darauf eingehen?
Royi Namir

es scheint sowieso nicht zu trennen. Danach stürzte der Webpack-Dev-Server ab.
Plankton

Nachdem ich einen Monat lang nicht in der Lage war, es zum Laufen zu bringen, war ich sehr nahe dran aufzugeben und weiter mit Angularjs zu arbeiten. Das hat endlich geklappt! Danke dir.
NestorArturo

Ich installiere Webpack, aber ich starte Webpack ohne Parameter show, diese Art von Nachricht: Welche möchten Sie installieren (webpack-cli / web-Befehl)
Ng Sharma

59

Während der Arbeit an Windows habe ich Webpack lokal installiert und mein Problem behoben

Wechseln Sie also an Ihrer Eingabeaufforderung zu dem Verzeichnis, in dem Sie das Webpack ausführen möchten, installieren Sie das Webpack lokal (ohne das -g) und genießen Sie ...


10
aber Sie haben nicht erwähnt, wie man es "lokal" installiert
jpganz18

lokal ist npm install webpack, ohne wie erwähnt -g zu verwenden. Das hat in meinem Fall funktioniert.
Honza P.

24

Scheint ein häufiges Windows-Problem zu sein. Das hat es für mich behoben:

Nodejs kann installiertes Modul unter Windows nicht finden?

"Fügen Sie eine Umgebungsvariable mit dem Namen hinzu NODE_PATHund setzen Sie sie auf %USERPROFILE%\Application Data\npm\node_modules(Windows XP).%AppData%\npm\node_modules (Windows 7) oder überall dort, wo npm die Module auf Ihrer Windows-Version installiert. diese ein für alle Mal als Systemvariable hinzu die Registerkarte Erweitert des Dialogfelds Systemeigenschaften (führen Sie control.exe sysdm.cpl, System, 3 aus). "

Beachten Sie, dass Sie keine andere Umgebungsvariable innerhalb des Werts von verwenden können NODE_PATH. Das heißt, kopieren Sie den obigen String nicht nur und fügen Sie ihn ein, sondern setzen Sie ihn auf einen tatsächlich aufgelösten Pfad wieC:\Users\MYNAME\AppData\Roaming\npm\node_modules


1
funktioniert nicht für mich unter Windows 10. Es gibt keinen node_modulesOrdner in C:\Users\MYNAME\AppData\Roaming\npm`. I tried to set NODE_PATH` Wert, C:\Program Files (x86)\nodejs\node_modulesaber es hat nicht geholfen
VB_

3
Funktioniert gut für mich unter Windows 10 : setx NODE_PATH %AppData%\npm\node_modules. Möglicherweise müssen Sie Ihre neu starten, cmdbevor die NODE_PATHVariable verfügbar ist oder auch ausgeführt wird set NODE_PATH=%AppData%\npm\node_modules.
Nux

23

Ich habe das gleiche Problem durch Neuinstallation gelöst und diese Befehle ausgeführt

rm -Rf node_modules
rm -f package-lock.json
npm install

rmist immer ein gefährlicher Befehl, besonders bei -f, bitte beachten Sie, dass vor der Ausführung !!!!!


2
package-lock.json ist der Schuldige
Sérgio S. Filho

17

Führen Sie die folgenden Befehle im Terminal aus:

npm install --save-dev webpack

npm install --save-dev webpack-dev-server


9

Ich hatte dieses Problem unter OS X und es schien durch eine Versionsinkongruenz zwischen meiner global installierten webpackund meiner lokal installierten Version verursacht zu werden webpack-dev-server. Durch das Aktualisieren beider Versionen auf die neueste Version wurde das Problem behoben.


Das hat auch bei mir funktioniert, daher denke ich, dass es sich lohnt, unter verschiedenen Szenarien darüber nachzudenken, ob Sie dieses Problem haben.
JL Peyret

2

Wenn Sie ein Knotenpaket installiert haben und weiterhin die Meldung erhalten, dass das Paket nicht definiert ist, liegt möglicherweise ein Problem mit der Verknüpfung von PATH und Binärdatei vor. Nur um eine Binärdatei und eine ausführbare Datei zu verdeutlichen, tun Sie im Wesentlichen dasselbe, nämlich ein Paket oder eine Anwendung auszuführen. ei webpack ... führt das Webpack des Knotenpakets aus.

Sowohl unter Windows als auch unter Linux gibt es einen globalen Binärordner. Unter Windows glaube ich, dass es so etwas wie C: // Windows / System32 ist und unter Linux usr / bin. Wenn Sie das Terminal / die Eingabeaufforderung öffnen, verknüpft das Profil die Variable PATH mit dem globalen Ordner bin, sodass Sie Pakete / Anwendungen von dort aus ausführen können.

Ich gehe davon aus, dass die globale Installation von Webpack die ausführbare Datei möglicherweise nicht erfolgreich in den globalen Binärordner verschoben hat. Ohne die dort ausführbare Datei erhalten Sie eine Fehlermeldung. Es könnte ein anderes Problem sein, aber es ist sicher zu sagen, dass das globale Ausführen von Webpack für Sie nicht funktioniert, wenn Sie dies hier lesen.

Meine Lösung für dieses Problem besteht darin, das globale Ausführen von Webpack zu vermeiden und den PATH mit dem binären Ordner node_module zu verknüpfen, der /node_modules/.bin lautet.

WINDOWS: Fügen Sie Ihrem PATH node_modules / .bin hinzu. Hier ist ein Tutorial zum Ändern der PATH-Variablen in Windows.

LINUX: Gehen Sie zu Ihrem Projektstamm und führen Sie dies aus ...

export PATH:$PWD/node_modules/.bin:$PATH 

Unter Linux müssen Sie diesen Befehl jedes Mal ausführen, wenn Sie Ihr Terminal öffnen. Dieser Link hier zeigt Ihnen, wie Sie eine Änderung an Ihrer PATH-Variablen dauerhaft vornehmen können.


1

Unter Windows habe ich festgestellt, dass dieses Problem auftritt, wenn Sie keine Administratorrechte (dh Sie sind kein lokaler Administrator) auf dem Computer haben.

Wie jemand anderes vorgeschlagen hat, scheint die Lösung darin zu bestehen, lokal zu installieren, indem der -gHinweis nicht verwendet wird .


1

Öffnen Sie die npm-Eingabeaufforderung und den Ordner - cd solution und führen Sie dann einfach das npm link-Webpack in NPM cmd prommt aus und erstellen Sie es neu.


1

Sie können dies versuchen.

npm install --only=dev

Für mich geht das.


0

Nichts, was oben vorgeschlagen wurde, hat bei mir funktioniert (einschließlich der Variablen NODE_PATH). Ich habe einen Sym-Link von "node_modules" aus meinem lokalen Ordner zu den globalen AppData (z. B. unten) erstellt und es hat wie ein Zauber funktioniert.

C:\Users\mmoinuddin\AppData\Roaming\npm>mklink /D node_modules c:\essportreact\day1\node_modules
symbolic link created for node_modules <<===>> c:\essportreact\day1\node_modules
C:\essportreact\day1>webpack
Hash: 2a82a67f90f9aa05ab4a
Version: webpack 1.15.0

0

Ich habe gerade herausgefunden, dass bei Verwendung des Atom IDE-Terminals keine Abhängigkeiten lokal installiert wurden (wahrscheinlich ein Fehler oder nur ich). Das externe Installieren von git bash und das erneute Ausführen von npm-Befehlen hat bei mir funktioniert


0

Für mich ist es eine falsche Fehlerrückmeldung.

Es gab einen Konfigurationsfehler in webpack.config.js,

Löschen Sie die Datei und beginnen Sie von vorne, um mein Problem zu lösen


0

Ich hatte eine Menge Probleme beim Erstellen einer sehr einfachen .NET Core 2.0-Anwendung zum Erstellen in VS 2017. Dies ist der Fehler von AppVeyor, der jedoch im Wesentlichen lokal identisch war (einige Pfade wurden aus Sicherheitsgründen weggelassen):

Durchführen des ersten Webpack-Builds ...

module.js: 327 throw err;

EXEC: Fehler: Modul '........ / node_modules / webpack / bin / webpack.js' kann nicht gefunden werden.

at Function.Module._resolveFilename (module.js: 325: 15)

at Function.Module._load (module.js: 276: 25)

bei Function.Module.runMain (module.js: 441: 10)

beim Start (node.js: 140: 18)

at node.js: 1043: 3

csproj (25,5): Fehler MSB3073: Der Befehl "node node_modules / webpack / bin / webpack.js --config webpack.config.vendor.js" wurde mit Code 1 beendet.

Build FAILED.

Ich bin auf diese Frage und Antwort gestoßen und habe festgestellt, dass meine lokale Instanz das gleiche Warnzeichen über dem {Project Root} -> Dependencies -> npmOrdner hat. Durch Klicken mit der rechten Maustaste und Klicken auf "Pakete wiederherstellen" wurde alles ordnungsgemäß geladen, und ich konnte erfolgreich erstellen.


0

npm link webpack hat bei mir funktioniert.

Meine Webpack-Konfiguration: "webpack": "^ 4.41.2", "webpack-dev-server": "^ 3.9.0", "webpack-cli": "^ 3.3.10"


0

Die globale Installation von Webpack und CLI hat bei mir funktioniert.

npm i -g webpack webpack-cli
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.