安装GitHub Fork的React Native包时npm卡顿并报错
问题描述
我Fork了react-native-draw仓库,执行以下命令安装自己的Fork包:
npm install git+https://github.com/sickopickle/react-native-draw.git
安装过程卡顿,中途显示:
reify:fsevents: timing reifyNode:node_modules/webpack-dev-server/node_modules/fsevents Completed in 36ms
卡顿结束后报错:
npm ERR! Cannot read properties of undefined (reading 'spec') npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\aiden\AppData\Local\npm-cache\_logs\2023-03-27T02_39_09_898Z-debug-0.log
日志关键片段:
265 timing arborist:ctor Completed in 1ms 266 timing arborist:ctor Completed in 0ms 267 timing reifyNode:node_modules/undefined Completed in 249086ms 268 timing reify:unpack Completed in 249087ms 270 timing build:queue Completed in 7ms 271 timing build:deps Completed in 8ms 272 timing build Completed in 8ms 273 timing reify:build Completed in 12ms 274 timing reify:trash Completed in 2ms 275 timing command:install Completed in 262444ms 276 verbose stack TypeError: Cannot read properties of undefined (reading 'spec') 276 verbose stack at updateNodes (C:\Users\aiden\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.js:1225:44) 276 verbose stack at Arborist.[saveIdealTree] (C:\Users\aiden\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.js:1394:11) 276 verbose stack at Arborist.reify (C:\Users\aiden\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.js:176:31) 276 verbose stack at async Install.exec (C:\Users\aiden\AppData\Roaming\npm\node_modules\npm\lib\commands\install.js:146:5) 276 verbose stack at async module.exports (C:\Users\aiden\AppData\Roaming\npm\node_modules\npm\lib\cli.js:134:5) 279 verbose node v16.18.0 280 verbose npm v9.6.2
注:环境为React Native,且能正常安装原仓库包及其他Fork包。
可能的解决方法
- 检查Fork仓库的package.json完整性
确保你的Fork仓库根目录下的package.json没有缺失name、version、dependencies等关键字段,格式也需符合JSON规范。npm安装Git仓库包时依赖这些字段解析,缺失或错误会导致arborist模块解析失败。 - 清理npm缓存后重试
执行以下命令清理缓存并重新安装:
Windows用户替换删除命令为:npm cache clean --force rm -rf node_modules package-lock.json npm install git+https://github.com/sickopickle/react-native-draw.gitrd /s /q node_modules del package-lock.json - 指定仓库分支/tag安装
在安装命令中明确指定分支(如main分支),避免npm自动解析出错:npm install git+https://github.com/sickopickle/react-native-draw.git#main - 降级npm版本
npm 9.x部分场景与arborist模块存在兼容性问题,可降级到npm 8.x版本:
之后重新执行安装命令。npm install -g npm@8.19.4 - 本地克隆仓库后手动安装
- 克隆你的Fork仓库到本地项目目录外:
git clone https://github.com/sickopickle/react-native-draw.git - 进入项目目录,执行本地路径安装:
npm install ../react-native-draw
- 克隆你的Fork仓库到本地项目目录外:
内容的提问来源于stack exchange,提问作者Aiden Yun
相关产品推荐
相关产品推荐

