Ubuntu 20.04与Win10下ReactJS执行npm start报webpack模块缺失错求助
问题根因
这个报错是典型的构建依赖版本跨大版本错位导致的,对照你给出的环境信息,错位点非常明确:
- 项目本地安装的webpack是5.21.2,但配套的webpack-cli、webpack-dev-server仍使用适配webpack4的旧版本,旧版webpack-dev-server会硬依赖
webpack-cli/bin/config-yargs这个文件路径,而webpack-cli v4及以上版本已经把这个文件重构移除,直接触发“找不到模块”的报错 - 全局webpack是4.30.0、项目本地webpack是5.21.2的双版本并行,会造成脚本执行时的依赖路径解析混乱,进一步放大兼容问题
- 当前使用的Node.js v10.19.0是2021年发布的旧LTS版本,本身对webpack5生态的兼容性支持不足
可落地的解决步骤
不要零散尝试网上的碎片化方案,按照版本对齐的逻辑依次操作:
- 第一步清理项目残留依赖,避免旧版本缓存干扰:删除项目目录下的
node_modules文件夹和package-lock.json锁文件(Ubuntu环境可执行rm -rf node_modules package-lock.json,Windows环境手动删除对应文件即可) - 第二步安装适配当前Node.js版本的全链路对齐依赖,全部安装在项目本地,不要走全局安装:
执行命令npm install webpack@4.30.0 webpack-cli@3.3.12 webpack-dev-server@3.11.2 --save-dev - 第三步确认
package.json中的启动脚本配置,原有"start": "webpack-dev-server --mode development --open --hot"无需修改,和安装的依赖版本完全适配 - 第四步重新安装全量项目依赖,执行
npm install完成安装后,再运行npm start即可正常启动
避坑提醒
- 所有webpack构建相关的依赖全部安装在项目本地,不要全局安装这类依赖,避免全局版本和项目版本互相干扰
- 如果后续选择升级Node.js到v16及以上版本,再对应升级webpack5生态的全套配套依赖即可,禁止跨大版本混搭依赖(比如webpack5配webpack-cli3、webpack-dev-server3这类组合)
内容的提问来源于stack exchange,提问作者MN.
相关产品推荐
相关产品推荐

