Javascript react native package指定了一个主模块https模块

Javascript react native package指定了一个主模块https模块,javascript,android,node.js,react-native,npm,Javascript,Android,Node.js,React Native,Npm,我做了一个测试项目,只尝试包含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 `/pat

我做了一个测试项目,只尝试包含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


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

错误很明显,您的package.json没有https模块。
我不知道你为什么需要这个模块,但是如果你需要这个REST API,我建议你或者你可以使用第三方。

你想要的
https
模块几乎肯定是Node.js内置的
https
模块,绝对不是。该软件包可能应该被弃用,这样人们就不会犯完全可以理解的错误

简而言之,请尝试
npm卸载https
,看看您的代码是否开始工作。可能会的

如果不是,你真的需要一些外部模块,它肯定不是那个模块。看看众多优秀的http/https模块中的一个@尼蒂什在他们的回答中提出了这一建议,这是一个受欢迎且可靠的选择

从“https”导入{Agent}应该与内置的
https
模块配合使用。(您可以通过将该行代码放入
index.mjs
文件并运行
Node index.mjs
来快速测试您的Node.js版本。如果没有错误消息,它就会工作。)


免责声明:我对世博会一无所知。这都是从Node.js/
npm
的角度来看的。

安装
https
library后是否重新启动了metro?@MaksymBezruchko是的。是否尝试将其作为默认模块导入:
从“https”导入https?@MaksymBezruchko yes.@b3nj4m1n请告诉我您的要求。我使用的是axios,但我需要通过ssl连接使用自签名证书(我不能使用免费的在线证书颁发机构)提出请求,因此从我在线阅读的内容来看,我需要创建一个axios实例并传递一个设置为false的https.Agent。如果有其他方法,请让我知道。我建议,你应该就此问题问另一个问题,特别提到你想在react native应用程序中执行此操作。你完全正确,我不知道这是两件独立的事情。问题是我使用的是react-native,而不是标准的NodeJ,react-native不包括节点标准库。我已经在使用axios,但似乎我需要https来传递axios和https代理,以允许通过自签名ssl进行请求。我将继续寻找一种不同的方式来配置它。