Netlify部署报错Module not found:无法解析react-icons/SI/DI如何解决?
问题解答
首先明确:完全不需要将node_modules文件夹推送到GitHub,Netlify会自动读取你仓库里的package.json文件,自动安装全部依赖。推送node_modules反而会拖慢部署速度、增加版本冲突概率,正常项目的.gitignore都会默认排除该文件夹。
你遇到的报错是几个独立问题共同导致的,按下面步骤修改即可:
1. 修复react-icons导入路径
报错已经明确提示找不到react-icons/SI和react-icons/DI路径,核心原因是:
Netlify的构建环境是Linux系统,对文件路径大小写严格敏感;而你本地如果是Windows或macOS系统,路径大小写不敏感,所以本地能正常运行。
你安装的react-icons@4.2.0版本中,Simple Icons和Dev Icons对应的导入路径是全小写的react-icons/si和react-icons/di,把Portfolio.js里的导入语句里的大写SI/DI改成小写即可。
2. 修复构建命令和环境变量判断的隐藏问题
你现在的配置还有两个隐藏坑,就算解决了导入问题也会影响构建结果:
- package.json里的
build命令是Windows平台的写法,Linux环境不识别SET指令,把"build": "SET NODE_ENV=production & webpack"改成"build": "NODE_ENV=production webpack" - webpack.config.js里判断生产环境的代码多了一个多余空格,把
if (process.env.NODE_ENV === "production ")里production末尾的空格删掉,不然永远匹配不到生产环境,会一直用开发模式打包。
验证步骤
修改完成后,先在本地删除node_modules文件夹和锁文件(package-lock.json/yarn.lock),重新执行npm install安装依赖,再执行npm run build测试本地构建是否正常,确认没问题后再推送到仓库触发Netlify部署即可。
内容的提问来源于stack exchange,提问作者Alwayslearning
相关产品推荐
相关产品推荐

