为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕少森 2023-07-14 14:45:27
我做了一个测试项目,只是想包含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,我得到了同样的错误)
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

你想要的模块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角度来看的。


查看完整回答
反对 回复 2023-07-14
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

https 是核心 NodeJS 模块之一,假设您的 App.js 文件是前端 React-Native 代码,则不能在 React-Native API 客户端中使用。另外,由于https是nodejs的核心模块,如果你已经安装了node,则不需要单独安装它。

另外,请注意,开发人员永远不要从 npm 安装任何软件包,除非您阅读了有关它的详细信息。例如。https 是一个废物包,里面没有任何代码,所以只要认识它即可。


查看完整回答
反对 回复 2023-07-14
?
绝地无双

TA贡献1946条经验 获得超4个赞

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



查看完整回答
反对 回复 2023-07-14
  • 3 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信