Webpack突然抛出这个错误:
TypeError:webpack.validateSchema不是函数
星期五一切都很好,今天不工作 . 自周五以来没有新的提交要掌握 .
修剪过的NPM,没有用,删除了NPM文件夹并重新安装,没有骰子 . 检查了以前的分支机构,这些分支机构已经过了一个多星期没有从Master那里重新定位 . 还是一样 .
有人有想法吗?
看起来像npm bug,因为 webpack-dev-server@2.1.0-beta.11 需要 webpack@^2.1.0-beta.26 但是npm无法安装它 .
webpack-dev-server@2.1.0-beta.11
webpack@^2.1.0-beta.26
避免问题而不更新太多的最简单方法是将package.json中的依赖项更改为
"webpack-dev-server": "2.1.0-beta.10",
而不是像
"webpack-dev-server": "^2.1.0-beta.9",
版本之前的“^”char表示“与...兼容” . 删除它完全符合版本 .
不要忘记之后运行 npm install 或 npm update .
npm install
npm update
我今天几乎与你同时遇到这个问题,结果发现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 .
package.json
"webpack": "2.1.0-beta.26"
"webpack": "2.1.0-beta.25"
在此之后,当我尝试运行 npm start 时,我遇到了另一个错误,该错误表明我的webpack配置文件存在问题 . 在我的情况下,我去了我的开发环境的webpack配置文件(因为我还没有 生产环境 ),我发现了一个名为'outputPath'的无效参数的罪魁祸首 .
npm start
我评论了这一行,现在我让一切正常 .
希望这有所帮助,现在可能只是一个黑客,但希望它是朝着正确方向迈出的一步 .
UPDATE:
好的,所以我对所有事情都有点不对劲'working fine' . 事实证明我的一些装载机工作不正常; Bootstrap和其他一些东西没有被正确加载,破坏了我的风格 . 所以,为了让它回到我之前的位置,我删除了 node_modules 文件夹并使用_1066500中的以下内容运行 npm install :
node_modules
"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",
希望像这样的讨论将帮助我们弄清楚如何正式推进新版本的webpack发布 .
我也得到了同样的错误 . 我在我的package.json文件中锁定了我的webpack-dev-server版本,这可以防止错误发生 . 但这并不能解决bug的根本问题 .
这是我正在使用的webpack-dev-server的版本,但我确信以后的版本也可以使用:“webpack-dev-server”:“2.1.0-beta.9”,
当我删除^并使用确切的版本时,它对我有用 .
从
"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"
当我这样做时,它对我有用:
Uninstall following package:
npm卸载webpack webpack-dev-server --save -dev
Install following Packages:
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
好的,在这里更新 .
尝试过你们中的一些人建议的,不幸的是,这让我更深入地了解了破坏模块加载器的漏洞 .
最后,我更新到 "webpack": "^2.1.0-beta.26" 和 "webpack-dev-server": "^2.1.0-beta.11" . 在那之后,发现有破裂的变化,导致 loaders 破裂 - https://github.com/webpack/webpack/releases .
"webpack": "^2.1.0-beta.26"
"webpack-dev-server": "^2.1.0-beta.11"
loaders
简而言之,在你的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']} 等 .
loaders: [ ... ]
rules : [ ... ]
{ 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
如this GitHub issue中所述,您需要将webpack更新为 webpack 2.1.0-beta.26 或更高版本 . 由于最后一个v2.1版本是beta.28,你应该要求 webpack@^2.1.0-beta.28 .
webpack 2.1.0-beta.26
webpack@^2.1.0-beta.28
请注意,beta.26中引入的一个重大变化是您需要指定加载器的全名,例如用 loader: 'babel-loader' 替换 loader: 'babel' .
loader: 'babel-loader'
loader: 'babel'
当我们将angular / cli升级到1.6.3并且当我们测试ng -v时,我们得到了对webpack的错误 . 所以我们碰巧卸载webpack,清理缓存然后再全局安装webpack . 它解决了这个问题
我遇到了这个问题,因为我安装了一个旧版本的webpack,它与项目特定的webpack有些冲突 .
我首先运行以下命令卸载全局(较旧)的webpack:
npm uninstall webpack -g
然后我运行了我的项目特定的webpack . 在Windows上webpack.cmd驻留在node_modules.bin \中,但是如果你通过npm任务运行webpack,npm将自动搜索.bin文件夹,因此不需要明确指定该路径 .
我的package.json中正常运行的npm运行任务如下所示:
"scripts": { "webpack": "webpack -w --config ./config/dev.js --progress" }
10 回答
看起来像npm bug,因为
webpack-dev-server@2.1.0-beta.11
需要webpack@^2.1.0-beta.26
但是npm无法安装它 .避免问题而不更新太多的最简单方法是将package.json中的依赖项更改为
而不是像
版本之前的“^”char表示“与...兼容” . 删除它完全符合版本 .
不要忘记之后运行
npm install
或npm update
.我今天几乎与你同时遇到这个问题,结果发现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'的无效参数的罪魁祸首 .我评论了这一行,现在我让一切正常 .
希望这有所帮助,现在可能只是一个黑客,但希望它是朝着正确方向迈出的一步 .
UPDATE:
好的,所以我对所有事情都有点不对劲'working fine' . 事实证明我的一些装载机工作不正常; Bootstrap和其他一些东西没有被正确加载,破坏了我的风格 . 所以,为了让它回到我之前的位置,我删除了
node_modules
文件夹并使用_1066500中的以下内容运行npm install
:希望像这样的讨论将帮助我们弄清楚如何正式推进新版本的webpack发布 .
我也得到了同样的错误 . 我在我的package.json文件中锁定了我的webpack-dev-server版本,这可以防止错误发生 . 但这并不能解决bug的根本问题 .
这是我正在使用的webpack-dev-server的版本,但我确信以后的版本也可以使用:“webpack-dev-server”:“2.1.0-beta.9”,
当我删除^并使用确切的版本时,它对我有用 .
从
至
当我这样做时,它对我有用:
Uninstall following package:
npm卸载webpack webpack-dev-server --save -dev
Install following Packages:
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
好的,在这里更新 .
尝试过你们中的一些人建议的,不幸的是,这让我更深入地了解了破坏模块加载器的漏洞 .
最后,我更新到
"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']}
等 .对我来说 . 希望这有助于其他任何人遇到这个问题 .
我通过运行此命令使其工作:
如this GitHub issue中所述,您需要将webpack更新为
webpack 2.1.0-beta.26
或更高版本 . 由于最后一个v2.1版本是beta.28,你应该要求webpack@^2.1.0-beta.28
.请注意,beta.26中引入的一个重大变化是您需要指定加载器的全名,例如用
loader: 'babel-loader'
替换loader: 'babel'
.当我们将angular / cli升级到1.6.3并且当我们测试ng -v时,我们得到了对webpack的错误 . 所以我们碰巧卸载webpack,清理缓存然后再全局安装webpack . 它解决了这个问题
我遇到了这个问题,因为我安装了一个旧版本的webpack,它与项目特定的webpack有些冲突 .
我首先运行以下命令卸载全局(较旧)的webpack:
然后我运行了我的项目特定的webpack . 在Windows上webpack.cmd驻留在node_modules.bin \中,但是如果你通过npm任务运行webpack,npm将自动搜索.bin文件夹,因此不需要明确指定该路径 .
我的package.json中正常运行的npm运行任务如下所示: