【问题标题】:metro error 'crypto', package itself specifies a `main` module field that could not be resolved, react-native and open apiMetro 错误“加密”,包本身指定了一个无法解析的“主”模块字段,react-native 和开放 api
【发布时间】:2021-12-24 03:39:50
【问题描述】:

使用 ios 模拟器运行本机反应。

后端使用开放式 api,并在 FrontEnd 中有一个文件夹来强制实施模式。我正在从这个 openapi 自动生成的文件 Frontend/sdk/api.ts 中调用一个类。

在我的frontend/service/doSomething.ts

import { DefaultApi } from '../sdk/api // in frontend, autogenerated by open API
function func1 () {
   const api = new DefaultApi()   // calls crypto somehow
}

在构建时,我收到此错误

 BUNDLE  ./index.js 

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

  * /app/node_modules/crypto/index.js(.native|.ios.jsx|.native.jsx|.jsx|.ios.js|.native.js|.js|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx|.ios.json|.native.json|.json)
  * /app/node_modules/crypto/index.js/index(.native|.ios.jsx|.native.jsx|.jsx|.ios.js|.native.js|.js|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx|.ios.json|.native.json|.json)
    at DependencyGraph.resolveDependency (/app/node_modules/metro/src/node-haste/DependencyGraph.js:311:17)
    at Object.resolve (/app/node_modules/metro/src/lib/transformHelpers.js:129:24)
    at resolve (/app/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33)
    at /app/node_modules/metro/src/DeltaBundler/traverseDependencies.js:412:26
    at Array.reduce (<anonymous>)
    at resolveDependencies (/app/node_modules/metro/src/DeltaBundler/traverseDependencies.js:411:33)
    at processModule (/app/node_modules/metro/src/DeltaBundler/traverseDependencies.js:140:31)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async addDependency (/node_modules/metro/src/DeltaBundler/traverseDependencies.js:230:18)
    at async Promise.all (index 2)

失败:我尝试关注However, this package itself specifies a `main` module field that could not be resolved 添加到metro.config.js

 resolver: {
    sourceExts: ['jsx', 'js', 'ts', 'tsx'], //add here
  }

但它失败并出现同样的错误。

【问题讨论】:

  • request 包和 crypto 已被弃用。

标签: react-native openapi openapi-generator metro-bundler


【解决方案1】:

请求包和加密已被弃用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2020-03-07
    • 2021-02-19
    • 2022-01-16
    • 2021-12-17
    • 1970-01-01
    • 2020-11-29
    相关资源
    最近更新 更多