web-dev-qa-db-ja.com

webpack.validateSchemaは関数ではありません

Webpackは突然このエラーを投げています:

TypeError:webpack.validateSchemaは関数ではありません

金曜日はすべて正常に機能し、今日は機能していませんでした。金曜日以降、マスターへの新しいコミットはありません。

除去されたNPMは機能しませんでした。NPMフォルダーを削除して再インストールしましたが、サイコロはありません。 1週間以上Masterからリベースされていない以前のブランチをチェックアウトしました。まだ同じ。

誰もがアイデアを持っていますか?

41

[email protected]にはwebpack@^2.1.0-beta.26が必要ですが、npmはインストールに失敗したため、npmのバグのように見えます。

更新しすぎることなく問題を回避する最も簡単な方法は、package.jsonの依存関係を

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

のようなものの代わりに

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

バージョンの前の「^」文字には「互換性がある」と表示されます。それを削除すると、バージョンに正確に固執します。

後でnpm installまたはnpm updateを実行することを忘れないでください。

31
BartBiczBoży

私も同じエラーを受け取りました。 package.jsonファイルでwebpack-dev-serverのバージョンをロックしたため、エラーが発生しませんでした。ただし、バグの根本的な問題は解決しません。

これは私が使用しているwebpack-dev-serverのバージョンですが、それ以降のバージョンでも動作するはずです: "webpack-dev-server": "2.1.0-beta.9"、

6
Kevin Mark

私がやったとき、それは私のために働いた:

次のパッケージをアンインストールします:

npmアンインストールwebpack webpack-dev-server --save -dev

次のパッケージをインストール:

npm install --save -dev [email protected]

npm install --save -dev [email protected]

npm install --save -dev [email protected]

6
Piyush Dubey

^を削除して正確なバージョンを使用すると、うまくいきました。

から

"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

さて、ここで更新してください。

数人が提案したことを試してみましたが、残念なことに、壊れたモジュールローダーのエラーのうさぎの穴を深く掘り下げました。

最後に、"webpack": "^2.1.0-beta.26""webpack-dev-server": "^2.1.0-beta.11"に更新しました。その後、破壊的な変更があり、loadersが破壊されることがわかりました- https://github.com/webpack/webpack/releases

要するに、webpackの設定で、loaders: [ ... ]rules : [ ... ]に変更し、すべてのローダー宣言で、このように文字列値に「-loader」を追加します{ 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']}など。

私のためにやった。これが問題にぶつかる他の人に役立つことを願っています。

このコマンドを実行することで動作しました:

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

このGitHubの問題 で説明されているように、webpackをwebpack 2.1.0-beta.26以降に更新する必要があります。最後のv2.1リリースはbeta.28であるため、webpack@^2.1.0-beta.28が必要です。

Beta.26で導入された重大な変更の1つは、ローダーのフルネームを指定する必要があることです。 loader: 'babel'loader: 'babel-loader'に置き換えます。

1
Dan Dascalescu

Angular/cliを1.6.3にアップグレードしたときに同じ問題が発生し、ng -vをテストするとwebpackに対してエラーが発生します。そのため、webpackをアンインストールし、キャッシュクリーンを実行してから、webpackを再びグローバルにインストールしました。問題を解決しました

0

プロジェクト固有のWebパックと何らかの形で競合する古いグローバルバージョンのWebパックがインストールされていたため、この問題が発生しました。

私は最初に以下を実行してグローバル(古い)webpackをアンインストールしました:

npm uninstall webpack -g

次に、プロジェクト固有のWebパックを実行しました。 Windowsでは、webpack.cmdはnode_modules.bin \にありますが、npmタスクを介してwebpackを実行すると、npmは.binフォルダーを自動的に検索するため、そのパスを明示的に指定する必要はありません。

Package.jsonで機能するnpm runタスクは次のようになります。

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