react-native 包指定了一个主模块 https 模块

我做了一个测试项目,只是想包含https。我曾经expo init test初始化项目,然后npm install https安装库。


然后我编辑了 App.js 并将这一行包含在最顶部:import {https} from 'https';


最后expo start启动expo服务器。


现在我收到以下错误:


InternalError Metro has encountered an error: While trying to resolve module `https` from file `/path/test/App.js`, the package `/path/test/node_modules/https/package.json` was successfully found. However, this package itself specifies a `main` module field that could not be resolved (`/path/test/node_modules/https/index.js`. Indeed, none of these files exist:


  * /path/test/node_modules/https/index.js(.native|.android.expo.ts|.native.expo.ts|.expo.ts|.android.expo.tsx|.native.expo.tsx|.expo.tsx|.android.expo.js|.native.expo.js|.expo.js|.android.expo.jsx|.native.expo.jsx|.expo.jsx|.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|.android.wasm|.native.wasm|.wasm)

  * /path/test/node_modules/https/index.js/index(.native|.android.expo.ts|.native.expo.ts|.expo.ts|.android.expo.tsx|.native.expo.tsx|.expo.tsx|.android.expo.js|.native.expo.js|.expo.js|.android.expo.jsx|.native.expo.jsx|.expo.jsx|.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|.android.wasm|.native.wasm|.wasm)

我已经验证这些文件确实不存在,这是 ls node_modules/https 的输出:package.json


所以我猜我在安装过程中做错了什么,但是我不知道是什么。(我也尝试过多次使用安装yarn add https,我得到了同样的错误)


慕少森
浏览 139回答 3
3回答

浮云间

你想要的模块https几乎肯定是 Node.js 内置https模块,而绝对不是已有六年历史、https没有文档或代码、只有一个单独的 package.json 文件的 npm 模块。该软件包可能应该被弃用,这样人们就不会犯这种完全可以理解的错误。简而言之,尝试npm uninstall https看看您的代码是否开始工作。可能会的。如果没有,并且您确实需要一些外部模块,那么它绝对不是那个模块。查看众多出色的 http/https 模块之一。import {Agent} from 'https';https假设您正在使用 Node.js 的最新版本,则应该使用内置模块。(您可以通过将该行代码放入文件中index.mjs并运行来快速测试您的 Node.js 版本node index.mjs。如果没有错误消息,则说明它有效。)免责声明:我对此一无所知expo。这都是从 Node.js/ 的npm角度来看的。

慕的地8271018

https 是核心 NodeJS 模块之一,假设您的 App.js 文件是前端 React-Native 代码,则不能在 React-Native API 客户端中使用。另外,由于https是nodejs的核心模块,如果你已经安装了node,则不需要单独安装它。另外,请注意,开发人员永远不要从 npm 安装任何软件包,除非您阅读了有关它的详细信息。例如。https 是一个废物包,里面没有任何代码,所以只要认识它即可。

绝地无双

错误很明显,您的 package.json 没有 https 模块。我不知道你为什么需要这个模块,但如果你需要这个 REST API 我建议fetch或者如果第三方你可以使用axios。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript