未计算文件的 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 &amp;&amp; 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 头文件

未捕获的错误:x 必须是 react-native 中的数字或数组

expo React-native 数据未呈现但登录控制台

从异步函数 react-native 获取未定义