webpack.validateSchema不是一个函数

Webpack突然抛出此错误:

TypeError:webpack.validateSchema不是一个函数

星期五一切正常,今天不工作。自周五以来,没有新的提交要掌握。

修剪了无效的NPM,删除了NPM文件夹并重新安装,没有骰子。检出过一个星期未从Master重新定级的以前的分支机构。还是一样。

有人有主意吗?

理查德小胖2020/03/24 15:45:39

我遇到了这个问题,因为我安装了一个较旧的全局版本的webpack,这在某种程度上与项目特定的webpack冲突。

我首先通过运行以下命令卸载了全局(旧)webpack:

npm uninstall webpack -g

然后,我运行了特定于项目的Webpack。在Windows上,webpack.cmd驻留在node_modules.bin \中,但是如果您通过npm任务运行webpack,则npm将自动搜索.bin文件夹,因此无需显式指定该路径。

package.json中正在运行的npm run任务如下所示:

  "scripts": {
      "webpack": "webpack -w --config ./config/dev.js --progress"
  }
番长樱梅2020/03/24 15:45:39

当我们将angular / cli升级到1.6.3并测试ng -v时,遇到了同样的问题,导致webpack出现错误。因此,我们碰巧卸载了webpack,清理了缓存,然后再次在全局范围内安装了webpack。它解决了问题

前端猿小哥2020/03/24 15:45:39

我通过运行以下命令使其工作:

npm install --save-dev webpack-dev-server@beta webpack@beta
番长Near2020/03/24 15:45:39

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

卸载以下软件包:

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

梅蛋蛋2020/03/24 15:45:39

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

这是我正在使用的webpack-dev-server的版本,但我确定以后的版本也能正常工作:“ webpack-dev-server”:“ 2.1.0-beta.9”,

阿飞2020/03/24 15:45:39

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

"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"
GOL2020/03/24 15:45:39

看起来像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",

而不是像

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

版本前的“ ^”字符表示“与...兼容”。删除它完全符合该版本。

不要忘记跑步npm installnpm update之后。

凯达蒙2020/03/24 15:45:39

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

这是我所做的修复工作:

首先我跑npm installnpm update,看看有什么结果。我运行这两个命令是因为npm有一种怪异的方式来报告未满足的依赖关系,有时是错误的,当您重新运行the npm update或the时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文件更改为read "webpack": "2.1.0-beta.26""webpack": "2.1.0-beta.25"然后运行另一个文件npm install

此后,当我尝试运行时遇到另一个错误,该错误npm start表明我的webpack配置文件存在问题。就我而言,我转到开发环境的webpack配置文件(因为我尚未投入生产),我发现了罪魁祸首,这是一个无效参数,称为“ outputPath”。

我注释掉了那条线,现在一切正常。

希望这会有所帮助,暂时可能只是一个hack,但希望这是朝正确方向迈出的一步。

更新:

好的,所以我对一切“正常工作”都有些不对。事实证明,我的某些装载机无法正常工作。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",

希望像这样的讨论将帮助我们弄清楚如何正确发布新版的webpack。