react-native run-ios执行报错求助:模块找不到与循环依赖警告
React Native run-ios 报错:padLevels 警告及 MODULE_NOT_FOUND 问题
问题详情
每次通过react-native init ProjectName创建新项目,执行npm install、cd ios && pod install && cd ..后,运行react-native run-ios会出现如下警告:
asdf@Asdf-MacBook-Pro ProjectName % react-native run-ios info Found Xcode workspace "ProjectName.xcworkspace" info Building (using "xcodebuild -workspace ProjectName.xcworkspace -configuration Debug -scheme ProjectName -destination id=3A1A98EB-1D97-4DC2-967F-565F3971D608") (node:16102) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency (Use `node --trace-warnings ...` to show where the warning was created)
执行node --trace-warnings ...时触发模块缺失错误:
node:internal/modules/cjs/loader:959 throw err; ^ Error: Cannot find module '/Users/asdf/Desktop/starter/ProjectName/...' at Function.Module._resolveFilename (node:internal/modules/cjs/loader:956:15) at Function.Module._load (node:internal/modules/cjs/loader:804:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] }
已尝试的无效方案:
- 删除
node_modules和package-lock.json后重新执行npm install - 全局安装
react-native-cli及react-native后再安装项目依赖 - 升级/降级
node、nvm、npm版本
当前环境版本:
node v16.17.0 nvm 0.39.1 npm 7.24.2
解决方案
1. 修复padLevels警告(依赖兼容性问题)
该警告源于旧版glob模块的循环依赖,在Node 16+版本中会被触发,可通过以下步骤解决:
- 项目根目录执行
npm install glob@latest --save-dev,更新glob至兼容版本 - 清理npm缓存:
npm cache clean --force - 重装项目依赖:
rm -rf node_modules package-lock.json && npm install - 重新处理iOS依赖:
cd ios && pod deintegrate && pod install && cd ..
2. 修正MODULE_NOT_FOUND错误的命令用法
执行node --trace-warnings时的错误是因为命令格式错误,正确用法需传入完整的React Native命令:
node --trace-warnings node_modules/react-native/cli.js run-ios
此命令可正确追踪警告的触发源,而非用...占位。
3. 指定兼容的React Native版本创建项目
若上述方法无效,尝试创建项目时指定与Node 16兼容的React Native版本,例如:
npx react-native init ProjectName --version 0.70.6
(React Native 0.70.x系列对Node 16兼容性较好)
4. 检查Xcode配置
- 确保Xcode更新至最新稳定版(推荐14.x及以上)
- 打开项目的
xcworkspace文件,确认签名配置正确并选择可用模拟器 - 直接在Xcode中点击运行按钮,排查是否为命令行工具的问题
5. 重置NVM环境
- 卸载当前Node版本:
nvm uninstall 16.17.0 - 重新安装:
nvm install 16.17.0 - 设置默认版本:
nvm alias default 16.17.0 - 重启终端后重新创建项目测试
内容的提问来源于stack exchange,提问作者David Pham
相关产品推荐
相关产品推荐

