未计算文件的 React-Native Bundle Error 错误 SHA-1
Posted
技术标签:
【中文标题】未计算文件的 React-Native Bundle Error 错误 SHA-1【英文标题】:React-Native Bundle Error error SHA-1 for file is not computed 【发布时间】:2020-01-27 19:45:44 【问题描述】:我在创建 react-native 应用程序包时遇到此错误。
我正在执行命令 react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
error SHA-1 for file /usr/local/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js (/usr/local/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js) is not computed. Run CLI with --verbose flag for more details.
ReferenceError: SHA-1 for file /usr/local/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js (/usr/local/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js) is not computed
at DependencyGraph.getSha1 (/usr/local/lib/node_modules/react-native/node_modules/metro/src/node-haste/DependencyGraph.js:258:13)
at /usr/local/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:211:26
at Generator.next (<anonymous>)
at asyncGeneratorStep (/usr/local/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:46:24)
at _next (/usr/local/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:66:9)
at /usr/local/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:71:7
at new Promise (<anonymous>)
at /usr/local/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:63:12
at Transformer.transformFile (/usr/local/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:236:7)
at /usr/local/lib/node_modules/react-native/node_modules/metro/src/Bundler.js:87:34
react-native info 命令输出
info Fetching system and libraries information...
System:
OS: macOS Mojave 10.14.3
CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Memory: 1.73 GB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.16.0 - /usr/local/bin/node
Yarn: 1.19.1 - /usr/local/bin/yarn
npm: 6.13.4 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
ios SDK:
Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
android SDK:
API Levels: 23, 25, 26, 27, 28, 29
Build Tools: 27.0.3, 28.0.3
System Images: android-29 | Google Play Intel x86 Atom
Android NDK: 20.1.5948944
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5522156
Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0
react-native: 0.61.5 => 0.61.5
npmGlobalPackages:
create-react-native-app: 2.0.2
react-native-cli: 2.0.1
react-native: 0.61.5
【问题讨论】:
【参考方案1】:为了解决我的问题,我使用 --force 选项运行命令。
npm install -i -g --force react-native-cli
由于使用旧的 react-native 版本配置旧项目而引发了此问题。然后尝试使用新项目运行最新的 react-native 版本。
【讨论】:
工作,谢谢。yarn global add react-native-cli && react-native --version
【参考方案2】:
使用 npx 安装 跑 在 Windows 10 上
npx react-native run-android
在 Linux 上
npx react-native start
【讨论】:
不,使用此命令我们无法更新/安装 react-native-cli,问题在于 react-native-cli 而不是 react-native 库。【参考方案3】:我在我的 Mac 中使用
解决了这个问题npx react-native start
【讨论】:
【参考方案4】:对我来说,我安装了错误的包。
而不是这个:
npm i -g react-native
确保你这样做:
npm i -g react-native-cli
【讨论】:
我也有同样的情况,但必须用npm i -g react-native-cli --force
解决它【参考方案5】:
我无法发表评论,所以请使用 Punita 所述的npm install -i -g --force react-native-cli
。它在修复 SHA-1 问题时有效。
但是请不要将 sudo 用于任何与 npm 相关的事情。谢谢。
【讨论】:
【参考方案6】:为了解决我的问题,我使用 --force 选项运行命令。
npm install -i -g --force react-native-cli
【讨论】:
【参考方案7】:我认为这与 react-native-cli 的版本有关。
您应该尝试更新。
npm i -g react-native-cli
【讨论】:
我试过了,但是不行。我也尝试卸载 react-native 并再次安装,但这也不起作用。【参考方案8】:我想补充一点,当我尝试运行 Grade 命令来构建 Android 版本 (./gradlew bundleRelease
) 时,我也发生了同样的错误(在 PC、Windows 上运行)。
我发现问题的原因是由于使用 Dropbox 同步此 React Native 项目所属的文件夹,使用 Dropbox 的“自动备份您的 PC”功能,我的用户 Documents 文件夹由 Dropbox 备份.本质上,我会收到这样的错误:
文件 C:\Users\Ted 的错误 SHA-1 Zhu\Documents\my-app\MyAppWin\index.js (C:\Users\Ted Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js) 不计算。使用 --verbose 标志运行 CLI 以获取更多详细信息。 ReferenceError:文件 C:\Users\Ted 的 SHA-1 Zhu\Documents\my-app\MyAppWin\index.js (C:\Users\Ted Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js) 不计算
我会在错误消息中注意到,它引用了具有两个不同路径的同一个文件 (index.js):
C:\Users\Ted Zhu\Documents\my-app\MyAppWin\index.js C:\用户\泰德 Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js这一定是因为 Dropbox 创建了文件夹的符号链接,以便它在我的 Dropbox 文件夹中有一个路径。这似乎导致有问题的文件有两个指向同一个文件夹的路径,并诱使 Metro 捆绑器认为没有为其中一个项目文件创建 SHA 哈希。
解决方案是将此项目移至 Dropbox 未备份的其他目录。就我而言,我刚刚在我的用户主目录中创建了一个新文件夹。然后我就能够成功运行 gradle 命令来构建 Android 应用了。
【讨论】:
【参考方案9】:对我来说,我通过安装正确的 react-native-cli 来修复它:
yarn global remove react-native-cli
yarn global add react-native-cli
【讨论】:
以上是关于未计算文件的 React-Native Bundle Error 错误 SHA-1的主要内容,如果未能解决你的问题,请参考以下文章
react-native xcode 10.1“config.h”文件未找到
React-Native 我不断收到“您的二进制文件未针对 iPhone 5 进行优化”,但我有正确的图像?
在现有 iOS 应用程序中集成 react-native(0.40.0) 后未找到 yoga/Yoga.h 头文件