web-dev-qa-db-fra.com

webpack.validateSchema n'est pas une fonction

Webpack lance cette erreur tout à coup:

TypeError: webpack.validateSchema n'est pas une fonction

Tout fonctionnait bien vendredi et ne fonctionnait pas aujourd'hui. Aucun nouvel engagement à maîtriser depuis vendredi.

Le NPM élagué, cela ne fonctionnait pas, le dossier NPM supprimé et réinstallé, pas de dés. Vérifié les branches précédentes qui n'ont pas été rebasés de Master depuis plus d'une semaine. Toujours le même.

Quelqu'un a une idée?

41

Ressemble à un bogue npm, puisque [email protected] a besoin webpack@^2.1.0-beta.26 mais npm n'a pas réussi à l'installer.

Le moyen le plus simple d’éviter le problème sans trop de mises à jour consiste à modifier 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",

"^" car avant que la version indique "compatible avec". Le supprimer reste fidèle à la version.

N'oubliez pas de courir npm install ou npm update ensuite.

31
BartBiczBoży

J'ai rencontré ce problème aujourd'hui à peu près au même moment que vous. Il s'est avéré que WebPack avait été mis à jour à nouveau.

Voici ce que j'ai fait pour résoudre ce problème:

J'ai d'abord couru npm install et npm update pour voir quel était le résultat. J'ai exécuté ces deux commandes parce que npm possède une façon étrange de signaler des dépendances non satisfaites, parfois c'est faux et lorsque vous relancez le npm update ou la npm install, vous vous rendrez compte que les dépendances non résolues 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 [email protected] requires a peer of webpack@^2.1.0-beta.26 but none was installed.

Pour me débarrasser de cela, j'ai changé mon package.json fichier à lire "webpack": "2.1.0-beta.26" au lieu de "webpack": "2.1.0-beta.25" et a couru un autre npm install.

Après cela, une autre erreur s'est produite lorsque j'ai essayé de lancer npm start qui a déclaré qu'il y avait un problème avec mon fichier de configuration webpack. Dans mon cas, je suis allé dans le fichier de configuration webpack de mon environnement de développement (car je ne suis pas encore en production) et j'ai trouvé le coupable qui était un paramètre non valide appelé 'outputPath'.

J'ai commenté cette ligne et maintenant tout va 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.

PDATE:

Ok, donc je me suis un peu trompé à propos de tout "fonctionne bien". Il se trouve que certaines de mes chargeuses ne fonctionnaient pas correctement; Bootstrap et certaines autres choses n'étaient pas chargées correctement, ce qui casse mes styles. Alors, pour revenir à mon état antérieur, j'ai supprimé mon node_modules dossier et a exécuté npm install en utilisant ce qui suit 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 à comprendre comment aller de l'avant avec les nouvelles versions de Webpack publiées.

10
Moose

J'ai la même erreur aussi. J'ai verrouillé ma version de webpack-dev-server dans mon fichier package.json, ce qui a empêché l'erreur de se produire. Cela ne résout toutefois pas le problème fondamental du bogue.

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

6
Kevin Mark

Cela a fonctionné pour moi quand j'ai fait:

désinstaller le package suivant:

npm désinstaller webpack webpack-dev-server --save -dev

Installer les packages suivants:

npm install --save -dev [email protected]

npm install --save -dev [email protected]

npm install --save -dev [email protected]

6
Piyush Dubey

cela a fonctionné pour moi quand je supprime ^ et utilise 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"
5
Anagh Verma

Bon, mettez à jour ici.

J'ai essayé ce que quelques-uns d'entre vous ont suggéré, ce qui, malheureusement, vient de me plonger davantage dans un fouillis d'erreurs avec des chargeurs de modules cassés.

En fin de compte, j'ai mis à jour pour "webpack": "^2.1.0-beta.26" Et "webpack-dev-server": "^2.1.0-beta.11". Après cela, il a été découvert que des changements avaient été apportés, entraînant la rupture de loaders - https://github.com/webpack/webpack/releases .

en bref, dans votre configuration de pack Web, remplacez loaders: [ ... ] par rules : [ ... ], et sur toutes les déclarations de chargeur, ajoutez "-loader" à la valeur de chaîne comme ceci, { 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']} etc .

L'a fait pour moi. J'espère que cela aidera tous les autres qui rencontrent le problème.

4

Je l'ai obtenu en exécutant cette commande:

npm install --save-dev webpack-dev-server@beta webpack@beta
1
beeman

Comme expliqué dans cette édition de GitHub , vous devez mettre à jour webpack vers webpack 2.1.0-beta.26 ou plus tard. Étant donné que la dernière version v2.1 est la version bêta.28, vous devez avoir besoin de webpack@^2.1.0-beta.28.

Notez que l’une des modifications majeures introduites dans la version bêta.26 est que vous devez spécifier le nom complet des chargeurs, par exemple. remplacer loader: 'babel' avec loader: 'babel-loader'.

1
Dan Dascalescu

Nous avons le même problème lorsque nous avons mis à jour angular/cli à 1.6.3 et que nous testons ng -v nous obtenons une erreur concernant webpack. Il nous est donc arrivé de désinstaller Webpack, de nettoyer le cache, puis de le réinstaller globalement. Il a résolu le problème

0
karthik kannan B

J'ai eu ce problème parce qu'une version mondiale antérieure de Webpack installée était en conflit avec le Webpack spécifique au projet.

J'ai d'abord désinstallé le webpack global (plus ancien) en exécutant:

npm uninstall webpack -g

Ensuite, j'ai exécuté mon webpack spécifique au projet. Sur Windows, webpack.cmd réside dans node_modules.bin \, mais si vous exécutez webpack via une tâche npm, npm recherchera automatiquement le dossier .bin. Il n'est donc pas nécessaire de spécifier explicitement ce chemin.

La tâche d'exécution npm en cours de fonctionnement dans mon package.json se présente comme suit:

  "scripts": {
      "webpack": "webpack -w --config ./config/dev.js --progress"
  }
0
willem