I have the latest versions of webpack installed:
"webpack": "^4.0.0",
"webpack-cli": "^2.0.9"
Yet when I run webpack
in the terminal I get the following:
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
Seems that you had installed globally only webpack
and not webpack-cli
.
Therefore, npm install -g webpack-cli
solves the issue.
Why there is the problem in the first place? The following indicates that both webpack
and webpack-cli
packages are locally installed:
I have the latest versions of webpack installed:
"webpack": "^4.0.0", "webpack-cli": "^2.0.9"
Running webpack
in your terminal cannot find your locally installed version (provided by webpack-cli
since webpack-4).
That's because your locals executables folder aren't included in your shell PATH
variable (list of directories in which the shell looks for commands). The path where npm
install executables locally is ./node_modules/.bin
(more info here).
Therefore, instead of try running just webpack
you need to run:
./node_modules/.bin/webpack
Also, adding to your package.json
a script which use just webpack
works because npm
adds local ./node_modules/.bin/
directory to the shell path before it executes scripts (see npm run).
"scripts": {
"build": "webpack"
}
Then, execute in your terminal: npm run build
In recap, I think the package.json
script is the more clear and desirable way to go.