如何解决[webpack-cli] TypeError: cli.isMultipleCompiler不是函数问题

19

我遇到一个错误,但我不理解它的含义。我尝试了很多方法,如重新安装所有依赖项,但没有用。你有任何想法吗?以下是错误提示:

No production canister_ids.json found. Continuing with local
[webpack-cli] TypeError: cli.isMultipleCompiler is not a function
    at Command.<anonymous> (/Users/davidmartinezgil/proyect/node_modules/@webpack-cli/serve/lib/index.js:146:35)
    at async Promise.all (index 1)
    at async Command.<anonymous> (/Users/davidmartinezgil/proyect/node_modules/webpack-cli/lib/webpack-cli.js:1674:7)
13个回答

47

我尝试运行一个Jhipster应用时也遇到了类似的错误,这个错误是:

[webpack-cli] TypeError: cli.isMultipleCompiler is not a function
at Command.<anonymous> (C:\Users\doe\folder\MyApp\node_modules\@webpack-cli\serve\lib\index.js:146:35)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Promise.all (index 1)
at async Command.<anonymous> (C:\Users\doe\folder\MyApp\node_modules\webpack-cli\lib\webpack-cli.js:1674:7)

有些人建议将 webpack-cli 从版本 4.9.2 更新至 4.10.0

对于我而言,可以正常运行 npm start

希望对你也有效。

参考自 webpack 问题页面


2
非常感谢,它起作用了。我在package.json里面将版本更改为4.10.0,然后运行了"npm i",当我再次使用npm start时,它完美地工作了。谢谢。 - David Martínez Gil
这是 Node 的 semver 的后果吗?我有一个项目几周前运行得很好,现在没有任何更改就因为这个失败了。所以我想这可能是传递依赖项中的破坏性更改或者某种外部服务不再可用? - ecoe

12

确保你在终端中进入了你的项目目录

首先,在终端中输入以下内容,然后按回车键

npm install --save-dev webpack-cli

然后输入以下内容并按回车键:

npm upgrade --save-dev webpack-cli

它应该能正常运行。

也许你将不得不在每个新项目中这样做。


1
我曾经遇到同样的问题,而这个解决方案对我有效。 - quantllama

7

以下是如何更新webpack-cli的步骤,供其他人参考。

首先,在你的IDE终端中运行以下命令检查webpack的版本:webpack --version。你将看到一个类似于这样的列表:

webpack: 5.71.0
webpack-cli: 4.10.0     
webpack-dev-server 4.8.0

如果你的webpack-cli版本在4.10.0以下,那么你需要更新到最新版本才能让npm与JHipster在本地运行正常。以下是如何更新它的方法:
在IDE的终端中运行以下命令:
npm install webpack-cli@4.10.0

当前最新版本为4.10.0,但如果将来有更新,运行此命令时,请更改命令行末尾的版本号以更新到当前版本:

npm install webpack-cli@(INSERT NEW VERSION DIGITS HERE).

然后重新运行webpack --version,看看你的webpack是否已更新到你输入的版本。


额外说明:

为什么会出现这个错误?根据webpack.js.org的说法:“请注意,这不是推荐的做法。全局安装将锁定您到特定版本的webpack,并可能在使用不同版本的项目中失败。”

因此,如果你运行了像这样的命令:npm install --global webpack,那么很有可能你被锁定到了一个特定的版本。这可能就是错误原因。我就是这么认为的。我运行了npm install -g或类似的命令。

与上述内容相关的旅程和研究来源:

  1. https://webpack.js.org/guides/installation/
  2. https://stackabuse.com/npm-install-specific-version-of-a-package/

希望这可以帮到你!祝你一切顺利!


1
在终端中运行下面的代码行,它将解决你的问题。 如果你的 webpack 版本低于 4.10.0
1. npm install webpack-cli@4.10.0

0
我删除了node_modules,package-lock.json,如果有build文件夹,也删除它,然后运行npm install。 这对我起作用了。

0

请确保您在终端中的项目目录下

在终端中输入以下命令并按回车键

npm install webpack-cli


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

0
在输入 npm start 命令之前,请尝试编写我用星号标记的代码。
1--dfx deploy ***2--- npm install --save-dev webpack-cli 3- npm start

0
如果您正在使用yarn,则运行yarn add webpack-cli

0
安装 webpack-cli 版本 4.10
npm i webpack-cli@4.10

这可能会奏效。


0

对我来说很简单,只需要打开 package.json 文件并将版本从 4.9.x 改为 4.10, 然后运行 npm install, 再次运行 npm start,就像魔术一样!


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