React Native项目npm install异常:包名加随机串且无法重装
问题描述
执行npm install时,部分包(如@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression)会被添加随机字符串后缀(例如.plugin-bugfix-safari-id-destructuring-collision-in-function-expression-IZ2YO8TM),导致项目无法运行。删除node_modules后重新执行npm install,出现以下重命名错误:
npm ERR! path /Users/user/Documents/Mobile_Apps/project/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression
npm ERR! dest /Users/user/Documents/Mobile_Apps/project/node_modules/@babel/.plugin-bugfix-safari-id-destructuring-collision-in-function-expression-IZ2YO8TM
npm ERR! errno -66
npm ERR! ENOTEMPTY: directory not empty, rename '/Users/user/Documents/Mobile_Apps/project/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression' -> '/Users/user/Documents/Mobile_Apps/project/node_modules/@babel/.plugin-bugfix-safari-id-destructuring-collision-in-function-expression-IZ2YO8TM'
解决方案
1. 彻底清理缓存与残留文件
- 终止所有正在运行的npm/yarn进程
- 强制清理npm缓存:
npm cache clean --force - 删除
node_modules和锁文件:rm -rf node_modules rm package-lock.json - 手动删除
@babel目录下的隐藏残留文件夹:rm -rf node_modules/@babel/.plugin-bugfix-safari-id-destructuring-collision-in-function-expression-IZ2YO8TM
2. 更换包管理器尝试
若npm问题持续,切换到yarn或pnpm:
- 使用yarn:
npm install -g yarn yarn install - 使用pnpm:
npm install -g pnpm pnpm install
3. 修复目录权限
确保当前用户对项目目录拥有完整读写权限:
sudo chown -R $USER:$USER /Users/user/Documents/Mobile_Apps/project
4. 更新npm到最新版本
旧版npm可能存在此类兼容bug,更新至稳定版:
npm install -g npm@latest
5. 锁定依赖版本
检查package.json中@babel相关依赖的版本兼容性,锁定稳定版本避免冲突,示例:
"devDependencies": { "@babel/core": "^7.22.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.0" }
内容的提问来源于stack exchange,提问作者lutakyn

