1.1、安装

现在的webpack版本都到5点几了,如果直接
npm i webpack -D的话,会安装到5.几的版本
查包版本

  1. npm view webpack versions

安装 webpack,webpack-cli

  1. npm i webpack@4.46.0 webpack-cli -D

由于webpack可以进行0配置
我们看下初始的目录是怎么样的

  1. |-- webpack
  2. |-- package-lock.json
  3. |-- package.json
  4. |-- src
  5. |-- index.js

运行下

  1. npx webpack

打包过后多了一个dist/main.js

  1. |-- webpack
  2. |-- package-lock.json
  3. |-- package.json
  4. |-- dist
  5. | |-- main.js
  6. |-- src
  7. |-- index.js

1.2、npx运行原理

上面我们用到了 npx webpack,它到底干了什么呢?
其实这样执行,它会默认去找node-modules下的.bin目录 -> webpack.cmd命令

  1. // webpack.cmd
  2. @ECHO off
  3. SETLOCAL
  4. CALL :find_dp0
  5. IF EXIST "%dp0%\node.exe" (
  6. SET "_prog=%dp0%\node.exe"
  7. ) ELSE (
  8. SET "_prog=node"
  9. SET PATHEXT=%PATHEXT:;.JS;=;%
  10. )
  11. "%_prog%" "%dp0%\..\webpack\bin\webpack.js" %*
  12. ENDLOCAL
  13. EXIT /b %errorlevel%
  14. :find_dp0
  15. SET dp0=%~dp0
  16. EXIT /b

大概说的是,如果当前目录下有这个webpack.js,就用当前目录下的node.exe去执行这个文件,.bin目录下没有这个文件,所以就去node-modules/webpack/bin/webpack.js
image.png
你打开webpack.js,看到他用了webpack-cli的文件,所以说为什么安装webpack就要安装webpack-cli

贴两张webpack.js的截图
image.png
image.png