Octokit.js 无法与 Vite 配合使用。模块外部化,无法在客户端模式下访问

Roa*_*ter 2 reactjs octokit octokit-js vite

我在做什么?

我正在将 Vite 用于我的 React 应用程序。我正在导入 Octokit 并像这样绑定它:

import { Octokit } from "octokit";
const githubToken = import.meta.env.REACT_APP_GITHUB_TOKEN;
const octokit = new Octokit({auth: githubToken});
Run Code Online (Sandbox Code Playgroud)

我希望这个功能能够正常运行。就像这样,我希望使用octokit完美的方式提出请求。

我正在经历什么?

或者至少,它是这样开始的:Module "stream" has been externalized for browser compatibility and cannot be accessed in client code.

Roa*_*ter 7

我不确定这是否是一个可靠的解决方案,它对我有用,但感觉更像是一种解决方法。另外,我不愿意付出足够的努力来创建“最小复制存储库”,因此我无法将其作为问题发布在Vite 的存储库上。

无论如何,我解决了Module "stream" has been externalized for browser compatibility and cannot be accessed in client code.

  1. 安装isomorphic-fetch通过yarn add isomorphic-fetch.
  2. 将 my 更改为的vite.config.js别名。isomorphic-fetchnode-fetch

修改的vite.config.js

export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      'node-fetch': 'isomorphic-fetch',
    },
  },
})
Run Code Online (Sandbox Code Playgroud)

然而,这导致了一个问题Module "os" has been externalized for browser compatibility and cannot be accessed in client code.

我通过更改为解决了这个import { Octokit } from "octokit";问题import { Octokit } from "@octokit/core";

这引导我进入下一期global not defined

必须通过添加来“修复”这个问题

 define: {
    "global": {},
  },
Run Code Online (Sandbox Code Playgroud)

vite.config.js

如果您有更好的解决方案,请告诉我。