执行webpack --version显示1.14.0,已装最新版为何不符?
这绝对不正常——你明明安装了最新版Webpack,却显示1.x的旧版本,大概率是全局与局部包的版本冲突,或者命令调用的不是你刚安装的那套Webpack。下面是具体的排查和解决步骤:
1. 先搞清楚你调用的是全局还是局部Webpack
npm默认执行npm install webpack@latest是局部安装(只安装在当前项目的node_modules里),但如果你之前全局安装过旧版Webpack,直接在终端敲webpack --version会优先调用全局的旧版本。
检查全局Webpack版本:
npm list -g webpack如果输出里显示
webpack@1.14.0,那就是全局版本在搞鬼。检查局部Webpack版本(当前项目下):
npm list webpack或者直接运行局部的Webpack验证:
npx webpack --version(npx会自动找项目本地
node_modules里的包,这个命令如果显示4x+版本,就说明局部安装是成功的)
2. 针对性解决问题
情况一:全局版本太旧
如果你希望全局也用最新版,直接更新全局包:
npm install -g webpack@latest
之后再跑webpack --version应该就能看到最新版本了。
情况二:只想用项目局部的最新版
不想动全局包的话,以后都用npx webpack来执行打包命令,或者在项目的package.json里配置scripts:
{ "scripts": { "build": "webpack" } }
然后用npm run build来打包——npm的scripts会优先使用项目本地node_modules里的依赖。
情况三:局部安装没成功
如果npm list webpack显示的不是4x+版本,说明安装过程可能出问题了。可以试试:
- 删除项目的
node_modules文件夹和package-lock.json - 清理npm缓存:
npm cache clean --force - 重新安装局部最新版(记得加
--save-dev,因为Webpack是开发依赖):npm install webpack@latest --save-dev
3. 额外验证
如果以上都不行,直接调用本地Webpack的可执行文件来确认:
./node_modules/.bin/webpack --version
如果这个命令能显示正确的4x版本,那就是终端的PATH优先级问题——全局包的路径排在了局部.bin目录前面,用npx或者npm scripts就能避开这个问题。
内容的提问来源于stack exchange,提问作者Alan

