未计算文件的 React-Native Bundle Error 错误 SHA-1
React-Native Bundle Error error SHA-1 for file is not computed
我在创建 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 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
我认为这是关于 react-native-cli 的版本。
你应该尝试更新。
npm i -g react-native-cli
为了解决我的问题,我使用带有 --force 选项的 运行 命令。
npm install -i -g --force react-native-cli
此问题是由于使用旧的 react-native 版本配置旧项目而引发的。然后尝试 运行 最新的 react-native 版本与新项目。
我无法发表评论,所以使用 Punita 所说的 npm install -i -g --force react-native-cli
。它在解决 SHA-1 问题时起作用。
但是请不要对任何与 npm 相关的事情使用 sudo。谢谢。
使用 npx 安装
运行
关于 windows 10
npx react-native run-android
于 linux
npx react-native start
我在 Mac 中使用
解决了这个问题
npx react-native start
对我来说,我安装了错误的包。
而不是这个:
npm i -g react-native
确保你这样做:
npm i -g react-native-cli
为了解决我的问题,我有 运行 命令和 --force 选项。
npm install -i -g --force react-native-cli
我想补充一点,当我尝试 运行 grade 命令构建 Android 发布 (./gradlew bundleRelease
).
我发现问题的原因是使用 Dropbox 同步这个 React Native 项目所属的文件夹,使用 Dropbox 的“自动备份你的电脑”功能,我备份了我的用户文档文件夹通过 Dropbox。本质上,我会得到这样的错误:
error SHA-1 for file C:\Users\Ted
Zhu\Documents\my-app\MyAppWin\index.js (C:\Users\Ted
Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js)
is not computed. Run CLI with --verbose flag for more details.
ReferenceError: SHA-1 for file C:\Users\Ted
Zhu\Documents\my-app\MyAppWin\index.js (C:\Users\Ted
Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js)
is not computed
我会在错误消息中注意到,它引用了具有两个不同路径的同一个文件 (index.js):
- C:\Users\Ted Zhu\Documents\my-app\MyAppWin\index.js
- C:\Users\Ted
Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js
这一定是因为 Dropbox 创建了文件夹的符号 link,以便它在我的 Dropbox 文件夹中有一个路径。这似乎会导致相关文件有两个指向同一文件夹的路径,并欺骗 Metro 捆绑器认为没有为其中一个项目文件创建 SHA 哈希。
解决方案是将此项目移动到 Dropbox 未备份的其他目录。就我而言,我刚刚在我的用户主目录中创建了一个新文件夹。然后我能够成功地 运行 gradle 命令来构建 Android 应用程序。
对我来说,我通过安装正确的 react-native-cli 修复了它:
yarn global remove react-native-cli
yarn global add react-native-cli
对我来说,全局 cli 更新不起作用。
我只是 运行 类似 yarn react-native bundle
的命令...有效!
yarn react-native bundle --reset-cache --entry-file index.js --platform ios --bundle-output test.bundle --dev false
我在创建 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 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
我认为这是关于 react-native-cli 的版本。
你应该尝试更新。
npm i -g react-native-cli
为了解决我的问题,我使用带有 --force 选项的 运行 命令。
npm install -i -g --force react-native-cli
此问题是由于使用旧的 react-native 版本配置旧项目而引发的。然后尝试 运行 最新的 react-native 版本与新项目。
我无法发表评论,所以使用 Punita 所说的 npm install -i -g --force react-native-cli
。它在解决 SHA-1 问题时起作用。
但是请不要对任何与 npm 相关的事情使用 sudo。谢谢。
使用 npx 安装 运行 关于 windows 10
npx react-native run-android
于 linux
npx react-native start
我在 Mac 中使用
解决了这个问题npx react-native start
对我来说,我安装了错误的包。
而不是这个:
npm i -g react-native
确保你这样做:
npm i -g react-native-cli
为了解决我的问题,我有 运行 命令和 --force 选项。
npm install -i -g --force react-native-cli
我想补充一点,当我尝试 运行 grade 命令构建 Android 发布 (./gradlew bundleRelease
).
我发现问题的原因是使用 Dropbox 同步这个 React Native 项目所属的文件夹,使用 Dropbox 的“自动备份你的电脑”功能,我备份了我的用户文档文件夹通过 Dropbox。本质上,我会得到这样的错误:
error SHA-1 for file C:\Users\Ted Zhu\Documents\my-app\MyAppWin\index.js (C:\Users\Ted Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js) is not computed. Run CLI with --verbose flag for more details. ReferenceError: SHA-1 for file C:\Users\Ted Zhu\Documents\my-app\MyAppWin\index.js (C:\Users\Ted Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js) is not computed
我会在错误消息中注意到,它引用了具有两个不同路径的同一个文件 (index.js):
- C:\Users\Ted Zhu\Documents\my-app\MyAppWin\index.js
- C:\Users\Ted Zhu\Dropbox\PC\Documents\my-app\MyAppWin\index.js
这一定是因为 Dropbox 创建了文件夹的符号 link,以便它在我的 Dropbox 文件夹中有一个路径。这似乎会导致相关文件有两个指向同一文件夹的路径,并欺骗 Metro 捆绑器认为没有为其中一个项目文件创建 SHA 哈希。
解决方案是将此项目移动到 Dropbox 未备份的其他目录。就我而言,我刚刚在我的用户主目录中创建了一个新文件夹。然后我能够成功地 运行 gradle 命令来构建 Android 应用程序。
对我来说,我通过安装正确的 react-native-cli 修复了它:
yarn global remove react-native-cli
yarn global add react-native-cli
对我来说,全局 cli 更新不起作用。
我只是 运行 类似 yarn react-native bundle
的命令...有效!
yarn react-native bundle --reset-cache --entry-file index.js --platform ios --bundle-output test.bundle --dev false