升级antd 3.3.3后遇ENOENT错误,如何配置webpack 3.11.0?
解决antd 3.3.3 + webpack 3.11.0 编译成功但页面报错找不到DialogWrap.js的问题
嘿,我之前处理过类似的场景,你这个报错核心是项目找不到rc-dialog/es/DialogWrap.js文件——虽然编译过了,但运行时依赖的模块缺失或者路径不对。下面给你几个靠谱的解决步骤:
1. 彻底清理依赖后重新安装
升级antd后,很可能是依赖安装不完整或者版本冲突导致的。先把旧的依赖和锁文件清掉,重新装一遍:
# 删除node_modules文件夹 rm -rf node_modules # 如果用npm,删除锁文件 rm package-lock.json # 如果用yarn,删除yarn锁文件 rm yarn.lock # 重新安装所有依赖 npm install # 或者用yarn的话执行 yarn install
2. 检查并匹配rc-dialog的版本
antd 3.3.3对rc-dialog的版本有明确要求(应该是^7.4.0),你可以先查看当前项目里的rc-dialog版本:
npm list rc-dialog
如果版本不对,或者间接依赖没装上,手动安装指定版本:
npm install rc-dialog@^7.4.0 --save
3. 清理webpack缓存
有时候webpack的缓存会残留旧的依赖路径,导致运行时找错文件。重启dev server的时候加上--no-cache参数:
webpack-dev-server --no-cache
如果是生产构建,记得先删掉dist之类的构建输出目录,再重新构建。
4. 检查webpack的resolve配置
确保webpack的resolve配置能正确识别js/jsx文件,并且能找到node_modules里的依赖:
module.exports = { resolve: { // 添加上常用的扩展名,避免手动写后缀 extensions: ['.js', '.jsx', '.json'], // 确保node_modules被加入模块解析路径 modules: ['node_modules'] } }
一般来说,按这个顺序试下来,问题应该就能解决了。
内容的提问来源于stack exchange,提问作者yaal
相关产品推荐
相关产品推荐

