npm React Native项目中的编译问题

ig9co6j1  于 12个月前  发布在  React
关注(0)|答案(1)|浏览(139)

你好,我面临的问题是,我有一个包的问题。我的项目没有阅读“node_modules”文件夹。我已经尝试过恢复它,将项目迁移到新项目,并手动传输文件。我还下载了所需的依赖项,但Metro仍然没有编译应用程序。

Loading dependency graph...Failed to construct transformer:  Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:138:10)
    at stableHash (C:\Users\COM-PALOMO\OneDrive\Documentos\logistica\logisticatracking\node_modules\metro-cache\src\stableHash.js:19:8)
    at JsTransformer.getCacheKey (C:\Users\COM-PALOMO\OneDrive\Documentos\logistica\logisticatracking\node_modules\metro\src\JSTransformer\worker.js:471:7)
    at getTransformCacheKey (C:\Users\COM-PALOMO\OneDrive\Documentos\logistica\logisticatracking\node_modules\metro\src\DeltaBundler\Transformer\getTransformCacheKey.js:39:29)
    at new Transformer (C:\Users\COM-PALOMO\OneDrive\Documentos\logistica\logisticatracking\node_modules\metro\src\DeltaBundler\Transformer.js:147:28)
    at C:\Users\COM-PALOMO\OneDrive\Documentos\logistica\logisticatracking\node_modules\metro\src\Bundler.js:54:29 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

从我所看到的,Node.js版本不支持特定的SSL功能,在'package.json'文件中,在'scripts'下,我添加了以下行来使Metro运行:'start': 'set NODE_OPTIONS=--openssl-legacy-provider && react-native start' . Metro已成功启动,但未触发构建应用程序的选项。值得注意的是,React Native项目的版本是0.61.4,我机器上安装的Node.js版本是20.6.0。

46scxncf

46scxncf1#

建议删除node modules文件夹,通过Npm或Yarn重新安装node modules,
并再次尝试构建后gradlew清洁.(cd android && ./gradlew清洁)
如果问题存在,在android studio中打开android文件夹并同步gradle,它有助于获得更准确的日志.
也可以尝试使用Xcode中的工作区的ios部分。

相关问题