首页 > 解决方案 > 通过加密反应原生应用程序构建错误

问题描述

While trying to resolve module `crypto` from file `C:\Users\munge\SemaApp\node_modules\request\lib\helpers.js`, the package `C:\Users\munge\SemaApp\node_modules\crypto\package.json` was successfully found. However, this package itself specifies a `main` module field that could not be resolved (`C:\Users\munge\SemaApp\node_modules\crypto\index.js`. Indeed, none of these files exist:

  * C:\Users\munge\SemaApp\node_modules\crypto\index.js(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json)
  * C:\Users\munge\SemaApp\node_modules\crypto\index.js\index(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json)
Error: While trying to resolve module `crypto` from file `C:\Users\munge\SemaApp\node_modules\request\lib\helpers.js`, the package `C:\Users\munge\SemaApp\node_modules\crypto\package.json` was successfully found. However, this package itself specifies a `main` module field that could not be resolved (`C:\Users\munge\SemaApp\node_modules\crypto\index.js`. Indeed, none of these files exist:

  * C:\Users\munge\SemaApp\node_modules\crypto\index.js(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json)
  * C:\Users\munge\SemaApp\node_modules\crypto\index.js\index(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json)
    at DependencyGraph.resolveDependency (C:\Users\munge\SemaApp\node_modules\metro\src\node-haste\DependencyGraph.js:436:17)
    at Object.resolve (C:\Users\munge\SemaApp\node_modules\metro\src\lib\transformHelpers.js:317:42)
    at resolve (C:\Users\munge\SemaApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:629:33)
    at C:\Users\munge\SemaApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:645:26
    at Array.reduce (<anonymous>)
    at resolveDependencies (C:\Users\munge\SemaApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:644:33)
    at C:\Users\munge\SemaApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:329:33
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (C:\Users\munge\SemaApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:137:24)
    at _next (C:\Users\munge\SemaApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:159:9)
    at processTicksAndRejections (node:internal/process/task_queues:94:5)

我的 react native 应用程序在使用 web(expo 小吃)打开时可以正常工作。但是当我尝试通过 apk 类型构建我的应用程序时发生了上述错误。它说模块加密存在问题,但我什至没有在我的代码中使用加密。有什么问题,我该如何解决?

标签: reactjsreact-nativeexpo

解决方案


Crypto 模块与 request 相关,已弃用。使用 fetch 而不是 request。“https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch”展示了如何使用 fetch。


推荐阅读