构建React应用报错Module not found: Default condition should be last one求助
问题分析与解决方案
错误原因
这个编译错误Module not found: Error: Default condition should be last one,根源是你开发的rd-component库的package.json里,exports字段的条件顺序违反了Node.js模块解析规范——default条件必须放在所有条件的最后一位。
解决步骤
作为rd-component开发者(推荐方案)
- 打开
rd-component项目根目录的package.json,找到exports配置项 - 调整条件顺序,确保
default是最后一个条目,示例正确配置:
"exports": { ".": { "import": "./dist/index.esm.js", "require": "./dist/index.cjs.js", "default": "./dist/index.js" }, "./styles": "./dist/styles.css" }
- 重新构建库并发布新版本(比如
0.1.7) - 在你的React项目中执行
npm install rd-component@latest更新依赖,再运行npm run build即可正常构建
作为项目使用者(临时应急方案)
如果暂时无法等待库更新,可以直接修改node_modules/rd-component/package.json里的exports字段,把default条件移到最后。但注意这种修改会在下次执行npm install时被覆盖,仅适合临时测试场景。
额外验证点
- 确认
rd-component的exports中配置的文件路径(比如./dist/index.esm.js)确实存在于库的构建产物中 - 检查库的构建脚本是否正确生成了对应格式的模块文件(ES模块、CommonJS模块等)
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

