安装webpack和webpack-cli后运行webpack时仍然出错

Tay*_*tin 21 webpack webpack-4

我安装了最新版本的webpack:

"webpack": "^4.0.0",
"webpack-cli": "^2.0.9"
Run Code Online (Sandbox Code Playgroud)

然而,当我webpack在终端中运行时,我得到以下内容:

The CLI moved into a separate package: webpack-cli.
Please install 'webpack-cli' in addition to webpack itself to use the CLI.
-> When using npm: npm install webpack-cli -D
-> When using yarn: yarn add webpack-cli -D
Run Code Online (Sandbox Code Playgroud)

Car*_*uis 30

似乎您只是全局安装webpack而不是webpack-cli.

因此,npm install -g webpack-cli解决了这个问题.


解释和替代解决方案:

为什么首先出现问题?以下表示本地安装了两个webpackwebpack-cli包:

我安装了最新版本的webpack:

   "webpack": "^4.0.0",
   "webpack-cli": "^2.0.9"
Run Code Online (Sandbox Code Playgroud)

运行webpack在终端无法找到您的本地安装的版本(提供webpack-cli).那是因为你的locals executables文件夹没有包含在你的shell PATH变量中(shell查找命令的目录列表).npm本地安装可执行文件的路径./node_modules/.bin(此处为更多信息).

因此,而不是尝试运行只webpack需要运行:

./node_modules/.bin/webpack
Run Code Online (Sandbox Code Playgroud)

此外,添加到您正常package.json使用的脚本,webpack因为在执行脚本之前npm将本地./node_modules/.bin/目录添加到shell路径(请参阅npm run).

"scripts": {
    "build": "webpack"
}
Run Code Online (Sandbox Code Playgroud)

然后,在您的终端执行: npm run build

回顾一下,我认为package.json脚本是更清晰,更理想的方式.


Urv*_*att 8

尝试此命令使用Npm:

npm i -g webpack-cli -D --save
Run Code Online (Sandbox Code Playgroud)

  • 对于所有好奇的头脑,上面的命令在全局安装"webpack-cli"而不是在本地路径中.我 - >安装; g - >全球; D - > - save-dev (2认同)