TypeError: 在使用ReactJs时,webpack-cli无法读取未定义的属性'presetToOptions'。

11

我正在开发ReactJS应用程序,并配置了"webpack": "^2.7.0""webpack-cli": "^ 2.0.9 ",但在通过cmd运行webpack时出现以下错误。

const statsPresetToOptions = require("webpack").Stats.presetToOptions;
                                                                             ^

TypeError: Cannot read property 'presetToOptions' of undefined
    at processOptions (F:\reactJs_weather\React-Weather-App\node_modules\webpack-cli\bin\webpack.js:284:57)

你有任何想法吗?

4个回答

7

webpack-cli需要至少webpack版本4才能运行。

如果你正在使用较旧的版本,比如webpack 2或3,那么你不需要单独添加webpack-cli包。它已经内置于较旧版本的webpack中。

从版本4开始,整个CLI已经移植到一个单独的包webpack-cli中。

修复方法应该是删除webpack-cli包或使用最新版本的webpack>=4

目前有一个正在进行的PR,关于将Webpack 4添加为对等依赖项,所以很快就会出现相应的警告。

相关讨论:webpack未列为peer将webpack 4添加为peer依赖项


3

我也遇到了问题,并通过以下步骤解决:

  1. 卸载webpack-cli npm uninstall webpack-cli
  2. 在package.json中使用"build": "webpack --config build/webpack.conf.js --color"代替webpack-cli进行构建

希望能对您有所帮助。


1
我想补充一下,我所做的只是第一步。我运行了npm uninstall -g webpack webpack-cli,然后使用npm i -g webpack webpack-cli重新安装它们,现在它可以正常工作了。 - Damian C
这在我安装一个神秘地没有任何webpack依赖的包后突然发生。执行步骤1 (yarn remove webpack-cli) 修复了问题,并且似乎没有引发其他故障。 - brainbag

0

我没有遇到完全相同的错误,我的错误是 statsPresetToOptions is not a function,但是通过执行 npm uninstallnpm install 命令安装 webpack-cli 解决了问题。真是匪夷所思。


0

node_modules\webpack-cli\bin中更改路径为您的实际Stats.js文件。

对于我来说,下一个路径是正确的:

statsPresetToOptions = require("../../webpack/lib/Stats.js").presetToOptions;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接