React应用因ENOENT错误崩溃求助:create-react-app构建作品集遇问题
解决方案:React Scripts周期性崩溃(ENOENT缓存文件丢失)
核心原因
你的项目存放在iCloud云同步目录下,iCloud的自动同步机制会干扰node_modules/.cache内的缓存文件(如1.pack),导致React Scripts读取缓存时找不到文件,触发ENOENT错误。
具体解决步骤
- 移出iCloud目录:把整个portfolio文件夹复制到本地非同步路径(比如
~/Documents/Projects),重新执行npm install后启动项目。这是最彻底的解决方式,从根源避免云同步对缓存的干扰。 - 禁用缓存启动:修改
package.json的start命令,添加--no-cache参数,跳过缓存依赖:
此方法会减慢启动速度,但不会再出现缓存文件丢失的问题。"scripts": { "start": "react-scripts start --no-cache", "build": "react-scripts build", "test": "react-scripts test" } - 自定义缓存路径:通过环境变量指定非同步目录作为缓存位置,可在
.env文件中添加:
确保该目录不在iCloud同步范围内,之后正常执行WEBPACK_CACHE_DIRECTORY=~/Documents/portfolio-local-cachenpm start即可。
额外排查优化
- 降级Node.js版本:React Scripts对v21版本兼容性有限,建议切换到LTS版本(如v18或v20),用nvm快速切换:
nvm install 20 nvm use 20 - 手动清理旧缓存:删除现有缓存目录后重新启动:
rm -rf node_modules/.cache npm start
内容的提问来源于stack exchange,提问作者hamilton8x
相关产品推荐
相关产品推荐

