问题描述:
全局和项目局部安装了不同版本的webpack,项目目录下执行webpack命令时,查看输入信息发现显示的是局部webpack的版本号,但是如果指定webpack --version,显示的是全局webapck版本号。
理论上来说,命令行中执行webpack应该是全局webpack,但为什么使用webpack命令打包时显示的是局部版本号?
重现步骤:
1.全局安装了webpack@5.33.2、webpack-cli@4.6.0。
2.然后新建项目,执行npm init -y,再执行命令 npm i webpack@4.41.6 webpack-cli@3.3.11 -D局部安装webpack。
3.创建src文件夹,创建index.js文件,内容随便写
4.在项目根目录下分别执行命令webpack和webpack --version,对比输入信息
截图:
webpack
bin指令 实际上还是寻找可用的webpack-cli
可执行bin脚本webpack-cli
会判断是否存在当前node_modules
的版本,然后tryRequireThenImport
会先require
到当前node_module
s的webpack
,所以你会看到版本差异https://github.com/webpack/we...
所以你可以设置
WEBPACK_CLI_SKIP_IMPORT_LOCAL
避免此行为