2016-11-14 2 views
25

Webpack sind, diese Fehler ganz plötzlich zu werfen:webpack.validateSchema ist keine Funktion

TypeError: webpack.validateSchema is not a function

Alles funktionierte gut Freitag, heute nicht arbeiten. Seit Freitag keine neuen Commits mehr zu meistern.

Pruned NPM, das hat nicht funktioniert, gelöscht NPM-Ordner und neu installiert, keine Würfel. Ausgecheckt bei früheren Zweigen, die seit mehr als einer Woche nicht vom Master rebasiert wurden. Immer noch das gleiche.

Wer hat eine Idee?

+0

Huch! Ich habe gerade den gleichen Fehler. Dies geschah für mich, nachdem ich 'npm update' auf meinem Projekt ausgeführt hatte! – Moose

Antwort

5

Ich habe den gleichen Fehler auch. Ich habe meine Version von webpack-dev-server in meiner package.json-Datei gesperrt und dadurch den Fehler verhindert. Das behebt jedoch nicht das Grundproblem des Fehlers.

Dies ist die Version von webpack-dev-Server, ich benutze, aber ich bin sicher, dass spätere Versionen auch funktionieren: "webpack-dev-Server": "2.1.0-beta.9",

+1

Meine 'package.json' Datei hat' "webpack": "2.1.0-beta.25" 'und ich habe versucht,' npm install' und 'npm update' auszuführen. Danach bekomme ich: 'npm WARN [email protected] erfordert einen Peer von [email protected]^2.1.0-beta.26 aber keiner wurde installiert.' – Moose

+0

Dies sind die Versionen I ' m using und ich bekomme diese Warnung nicht: "webpack": "2.1.0-beta.25", "webpack-dev-middleware": "^ 1.6.1", "webpack-dev-server" : "2.1.0-beta.9", "webpack-md5-hash": "^ 0.0.5", "webpack-merge": "^ 0.15.0" Funktioniert es nicht auch noch mit diese Warnung obwohl? Normalerweise führt diese Warnung nicht zum Brechen meines Builds. –

+0

mein Build war brechend. Ich habe eine Problemumgehung in den Antworten unten veröffentlicht. – Moose

6

Ich stieß heute fast zur gleichen Zeit auf dieses Problem wie Sie, es stellt sich heraus, dass Webpack wieder aktualisiert wurde.

Hier ist, was ich tat, um es zu beheben:

Zuerst lief ich npm install und npm update zu sehen, was das Ergebnis war. Ich habe diese beiden Befehle ausgeführt, weil npm eine merkwürdige Möglichkeit hat, unerfüllte Abhängigkeiten zu melden, manchmal ist es falsch und wenn Sie die npm update oder die npm install erneut ausführen, werden Sie feststellen, dass die nicht erfüllten Abhängigkeiten kein Problem mehr sind.

Nachdem ich diese Befehle lief bemerkte ich, dass die einzige verbleibende Nachricht eine Warnung war:

npm WARN [email protected] requires a peer of [email protected]^2.1.0-beta.26 but none was installed.

Um dies ich meine package.json Datei ein anderes npm install"webpack": "2.1.0-beta.26" geändert loszuwerden statt "webpack": "2.1.0-beta.25" und lief zu lesen.

Danach bekam ich einen weiteren Fehler, als ich versuchte, npm start ausgeführt, die besagt, dass ein Problem mit meiner Webpack-Konfigurationsdatei war. In meinem Fall ging ich zur Webpack-Konfigurationsdatei für meine Entwicklungsumgebung (weil ich noch nicht in Produktion bin) und ich fand den Übeltäter, der ein ungültiger Parameter namens 'outputPath' war.

Ich habe diese Zeile auskommentiert und jetzt bekomme ich alles gut funktioniert.

Hoffe, dass dies hilft, kann nur ein Hack für jetzt sein, aber hoffentlich ist es ein Schritt in die richtige Richtung.

UPDATE:

Ok, so war ich etwas falsch über alles 'gut funktioniert'. Es stellte sich heraus, dass einige meiner Lader nicht richtig funktionierten. Bootstrap und einige andere Dinge wurden nicht richtig geladen, wodurch meine Stile zerstört wurden.Also, um es zu bekommen zurück, wo ich vorher war, löschte ich meine node_modules Ordner und lief npm install folgende in package.json mit:

"webpack": "2.1.0-beta.25", 
"webpack-dashboard": "^0.1.8", 
"webpack-dev-middleware": "^1.6.1", 
"webpack-dev-server": "2.1.0-beta.9", 
"webpack-md5-hash": "^0.0.5", 
"webpack-merge": "^0.15.0", 

Hoffentlich Diskussionen wie dieser wird uns helfen, herauszufinden, wie man mit dem nach vorne richtig bewegen Neue Versionen von Webpack werden veröffentlicht.

4

Okay, aktualisieren hier.

versucht, was ein paar von euch vorgeschlagen, die leider hat mich nur noch tiefer in ein Kaninchenloch von Fehlern mit gebrochenen Modul-Loader.

Am Ende habe ich auf "webpack": "^2.1.0-beta.26" und "webpack-dev-server": "^2.1.0-beta.11" aktualisiert. Danach fand heraus brachen Änderungen gibt, wodurch der loaders zu brechen - https://github.com/webpack/webpack/releases.

kurz gesagt, in Ihrer webpack config ändern loaders: [ ... ], zu rules : [ ... ], und auf alle Lader Erklärungen, fügen Sie "-Loader" auf den String-Wert, da dies, { test: /node_modules\/i18n-iso-countries\/(de|es|nl|sv)\.js$/, loader: 'null-loader' }, { test: /\.coffee$/, loader: 'coffee-loader' }, { test: /\.ts$/, loader: ['awesome-typescript-loader']} usw.

es für mich getan hat. Ich hoffe, dies hilft jedem anderen, auf das Problem einzugehen.

+1

Hallo, kannst du mir sagen, wie die Webpack-Konfiguration heißt? Ich finde nicht, wo sich Lader in meinem Projekt befinden. – Vanquiza

26

Sieht aus wie npm Fehler, da [email protected] erfordert [email protected]^2.1.0-beta.26 aber npm scheiterte, es zu installieren.

Der einfachste Weg, um das Problem zu vermeiden, ohne zu viel zu aktualisieren ist die Abhängigkeit in package.json zu

"webpack-dev-server": "2.1.0-beta.10", 

Statt etwas wie

"webpack-dev-server": "^2.1.0-beta.9", 

„^“ Zeichen zu ändern, bevor Version sagt " kompatibel mit". Das Entfernen bleibt exakt in der Version erhalten.

Vergessen Sie nicht, danach npm install oder npm update auszuführen.

+1

Warum wurde das abgelehnt? –

5

es für mich gearbeitet, wenn ich^löschen und die genaue Version verwenden.

Von

"webpack": "2.1.0-beta.25", 
"webpack-dev-middleware": "^1.6.1", 
"webpack-dev-server": "^2.1.0-beta.9", 
"webpack-md5-hash": "^0.0.5", 
"webpack-merge": "^0.14.1" 

zu

"webpack": "2.1.0-beta.25", 
"webpack-dev-middleware": "1.6.1", 
"webpack-dev-server": "2.1.0-beta.9", 
"webpack-md5-hash": "0.0.5", 
"webpack-merge": "0.14.1" 
+0

kein Glück hier. Unter Verwendung der genauen Version und jetzt sagt der Fehler nur Fehler bei webpack.js: 17: 9 das ist der gleiche Validierungsfehler – vgarzom

1

Wie in this GitHub issue erklärt, müssen Sie webpack zu webpack 2.1.0-beta.26 oder später aktualisieren . Da das letzte v2.1-Release beta.28 ist, sollten Sie [email protected]^2.1.0-beta.28 benötigen.

Beachten Sie, dass eine der Bruch in beta.26 eingeführten Änderungen ist, dass Sie den vollständigen Namen Lader angeben müssen, z.B. ersetzen Sie loader: 'babel' durch loader: 'babel-loader'.

0

Das gleiche Problem, wenn wir angular/cli auf 1.6.3 aktualisiert haben und wenn wir die ng -v testen, erhalten wir einen Fehler gegenüber Webpack. So passieren wir webpack, tun einen Cache sauber und dann installiert, um den webpack wieder global zu deinstallieren. Es löste die Ausgabe

2

Es funktionierte für mich, wenn ich tat:

Uninstall folgendes Paket:

npm Deinstallation webpack webpack-dev-Server --save -dev

installieren Folgende Pakete:

npm installieren --save -dev [email protected]

npm installieren --save -dev [email protected]

npm installieren --save -dev [email protected]