同时安装全局和局部的webpack后,对执行webpack命令显示结果的疑惑

新手上路,请多包涵

问题描述:
全局和项目局部安装了不同版本的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,对比输入信息
截图:
企业微信截图_16468169929965.png

阅读 1.8k
1 个回答

webpack bin指令 实际上还是寻找可用的webpack-cli可执行bin脚本

webpack-cli会判断是否存在当前node_modules的版本,然后tryRequireThenImport会先require到当前node_modules的webpack,所以你会看到版本差异

https://github.com/webpack/we...

所以你可以设置WEBPACK_CLI_SKIP_IMPORT_LOCAL 避免此行为

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题