45 votes

webpack.validateSchema n'est pas une fonction

Webpack jette cette erreur tout d'un coup :

TypeError : webpack.validateSchema n'est pas une fonction

Tout fonctionnait bien vendredi, mais plus aujourd'hui. Pas de nouveaux commits sur master depuis vendredi.

J'ai élagué NPM, ça n'a pas marché, j'ai supprimé le dossier NPM et je l'ai réinstallé, sans succès. J'ai vérifié les branches précédentes qui n'ont pas été rebasées depuis Master depuis plus d'une semaine. Toujours la même chose.

Quelqu'un a une idée ?

0 votes

Oups ! Je viens de recevoir la même erreur. Cela s'est produit pour moi après avoir exécuté npm update sur mon projet !

32voto

BartBiczBoży Points 1042

On dirait un bug de npm, puisque webpack-dev-server@2.1.0-beta.11 nécessite webpack@^2.1.0-beta.26 mais npm n'a pas réussi à l'installer.

La façon la plus simple d'éviter le problème sans trop mettre à jour est de changer la dépendance dans package.json en

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

Au lieu de quelque chose comme

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

Le caractère "^" avant la version dit "compatible avec". En le supprimant, on s'en tient exactement à la version.

N'oubliez pas de courir npm install o npm update après.

0 votes

Ça a marché pour moi ce matin, en changeant "webpack-dev-server": "^3.11.2" a "webpack-dev-server": "3.11.2"

11voto

Moose Points 711

J'ai rencontré ce problème aujourd'hui pratiquement en même temps que vous, il s'avère que webpack a encore été mis à jour.

Voici ce que j'ai fait pour le réparer :

D'abord j'ai couru npm install y npm update pour voir quel était le résultat. J'ai exécuté ces deux commandes parce que npm a une façon bizarre de signaler les dépendances non satisfaites, parfois c'est faux et quand vous réexécutez la commande npm update ou le npm install vous vous rendrez compte que les dépendances non satisfaites ne sont plus un problème.

Après avoir exécuté ces commandes, j'ai remarqué que le seul message restant était un avertissement :

npm WARN webpack-dev-server@2.1.0-beta.11 requires a peer of webpack@^2.1.0-beta.26 but none was installed.

Pour éviter cela, j'ai modifié mon package.json fichier à lire "webpack": "2.1.0-beta.26" au lieu de "webpack": "2.1.0-beta.25" et en a lancé un autre npm install .

Après cela, j'ai eu une autre erreur quand j'ai essayé d'exécuter npm start qui indiquait qu'il y avait un problème avec mon fichier de configuration webpack. Dans mon cas, je suis allé dans le fichier de configuration de webpack pour mon environnement de développement (parce que je ne suis pas encore en production) et j'ai trouvé le coupable qui était un paramètre invalide appelé 'outputPath'.

J'ai commenté cette ligne et maintenant tout fonctionne bien.

J'espère que cela vous aidera, ce n'est peut-être qu'un hack pour l'instant mais j'espère que c'est un pas dans la bonne direction.

UPDATE :

Ok, donc j'avais un peu tort sur le fait que tout "fonctionne bien". Il s'avère que certains de mes chargeurs ne fonctionnaient pas correctement ; Bootstrap et d'autres éléments n'étaient pas chargés correctement, ce qui cassait mes styles. Donc, pour revenir à la situation antérieure, j'ai supprimé mon fichier node_modules et a exécuté npm install en utilisant les éléments suivants dans package.json :

"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",

Espérons que des discussions comme celle-ci nous aideront à déterminer comment avancer correctement avec les nouvelles versions de webpack qui sont publiées.

6voto

Kevin Mark Points 2150

J'ai également obtenu la même erreur. J'ai verrouillé ma version de webpack-dev-server dans mon fichier package.json et cela a empêché l'erreur de se produire. Mais cela ne résout pas le problème de base du bogue.

C'est la version de webpack-dev-server que j'utilise mais je suis sûr que les versions ultérieures fonctionnent également : "webpack-dev-server" : "2.1.0-beta.9",

1 votes

Mon package.json Le fichier a "webpack": "2.1.0-beta.25" et j'ai essayé d'exécuter npm install y npm update . Après cela, j'obtiens : npm WARN webpack-dev-server@2.1.0-beta.11 requires a peer of webpack@^2.1.0-beta.26 but none was installed.

0 votes

Ce sont les versions que j'utilise et je ne reçois pas cet avertissement : "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" Est-ce que ça ne fonctionne pas même avec cet avertissement ? Habituellement, cet avertissement n'entraîne pas la rupture de ma compilation.

0 votes

Ma construction était en train de se briser. J'ai posté une solution de contournement dans la section des réponses ci-dessous.

6voto

Anagh Verma Points 66

Ça a marché pour moi quand j'ai supprimé ^ et utilisé la version exacte.

De

"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"

à

"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 votes

Pas de chance ici. J'utilise la version exacte et maintenant l'erreur dit juste error at webpack.js:17:9 qui est la même erreur de validation.

0 votes

Ça a marché pour moi ce matin, en changeant "webpack-dev-server": "^3.11.2" a "webpack-dev-server": "3.11.2"

6voto

Piyush Dubey Points 51

Ça a marché pour moi quand je l'ai fait :

Désinstallez le paquet suivant :

npm uninstall webpack webpack-dev-server --save -dev

Installez les paquets suivants :

npm install --save -dev webpack@3.10.0

npm install --save -dev webpack-cli@2.0.10

npm install --save -dev webpack-dev-server@2.9.7

0 votes

Cela fonctionne pour moi "npm install --save -dev webpack-cli@2.0.10"- cela n'a pas fonctionné mais le serveur fonctionne maintenant -

2 votes

Pas sûr mais je pense que --save -dev ne doivent pas être séparés : --save-dev

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X