Seems that you had installed globally only webpack
and not webpack-cli
.
Therefore, npm install -g webpack-cli
solves the issue.
Explanation and alternative solutions:
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.