webpack.validateSchema不是一个函数

Chr*_*sen 41 javascript typescript webpack webpack-dev-server

Webpack突然抛出这个错误:

TypeError:webpack.validateSchema不是函数

星期五一切都很好,今天不工作.自周五以来没有新的提交要掌握.

修剪过的NPM,没有用,删除了NPM文件夹并重新安装,没有骰子.检查了以前的分支机构,这些分支机构已经过了一个多星期没有从Master那里重新定位.还是一样.

有人有想法吗?

Bar*_*oży 31

看起来像npm bug,因为webpack-dev-server@2.1.0-beta.11需要webpack@^2.1.0-beta.26但是npm无法安装它.

避免问题而不更新太多的最简单方法是将package.json中的依赖项更改为

  "webpack-dev-server": "2.1.0-beta.10",
Run Code Online (Sandbox Code Playgroud)

而不是像

  "webpack-dev-server": "^2.1.0-beta.9",
Run Code Online (Sandbox Code Playgroud)

版本之前的"^"char表示"与...兼容".删除它完全符合版本.

不要忘记跑步npm install或跑步npm update.


Moo*_*ose 10

我今天几乎与你同时遇到这个问题,事实证明webpack再次更新.

这是我做的修复它:

首先,我跑了npm install,npm update看看结果是什么.我运行了这两个命令,因为npm有一种奇怪的方式来报告未满足的依赖项,有时它是错误的,当你重新运行npm update或者npm install,你会发现未满足的依赖项不再是问题.

运行这些命令后,我注意到剩下的唯一消息是警告:

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

为了摆脱这种情况,我改变了我的package.json文件,"webpack": "2.1.0-beta.26"而不是"webpack": "2.1.0-beta.25"运行另一个npm install.

在此之后,当我尝试运行时出现另一个错误npm start,表明我的webpack配置文件存在问题.在我的情况下,我去了我的开发环境的webpack配置文件(因为我还没有生产),我发现了一个名为'outputPath'的无效参数的罪魁祸首.

我评论了这一行,现在我让一切工作正常.

希望这有所帮助,现在可能只是一个黑客,但希望它是朝着正确方向迈出的一步.

更新:

好的,所以我对一切"工作正常"有点不对劲.事实证明,我的一些装载机工作不正常; Bootstrap和其他一些东西没有被正确加载,破坏了我的风格.所以,为了让它回到我之前的位置,我删除了我的node_modules文件夹并npm install使用以下内容运行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",
Run Code Online (Sandbox Code Playgroud)

希望像这样的讨论将帮助我们弄清楚如何正式推进新版本的webpack发布.


Kev*_*ark 6

我也得到了同样的错误.我在我的package.json文件中锁定了我的webpack-dev-server版本,这可以防止错误发生.但这并不能解决bug的根本问题.

这是我正在使用的webpack-dev-server的版本,但我确信以后的版本也可以使用:"webpack-dev-server":"2.1.0-beta.9",


小智 6

当我这样做时,它对我有用:

卸载以下包:

npm卸载webpack webpack-dev-server --save -dev

安装以下包:

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

  • **不确定**,但是我认为-save -dev不应该分开:-save-dev (2认同)

小智 5

当我删除^并使用确切版本时,它对我有用.

"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"
Run Code Online (Sandbox Code Playgroud)

"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"
Run Code Online (Sandbox Code Playgroud)