开发者问题收集

使用库时,未捕获:ReferenceError:未定义进程

2022-02-19
8597

这是完整错误

Uncaught ReferenceError: process is not defined
    at index.js:34
    at Object../node_modules/utp/index.js (index.js:41)
    at Object.options.factory (react refresh:6)
    at __webpack_require__ (bootstrap:24)
    at fn (hot module replacement:61)
    at Object../node_modules/peer-wire-swarm/index.js (index.js:1)
    at Object.options.factory (react refresh:6)
    at __webpack_require__ (bootstrap:24)
    at fn (hot module replacement:61)
    at Object../node_modules/torrent-stream/index.js (index.js:2)

项目是使用 npx create-react-app 创建的,并由 react-scripts start 启动 这是 App.js

import torrentStream from "torrent-stream";

function App() {
  return (
    <h1>Hello World</h1>
  );
}

export default App;

当我删除第一行 import torrentStream from "torrent-stream"; 时,一切正常。

我尝试安装 react-error-overlay ,但它什么也没做。在 webpack 中添加新插件如下:

new webpack.DefinePlugin({
    process: {env: {}}
}),

将错误更改为:

Uncaught TypeError: {(intermediate value)}.hrtime is not a function
    at index.js:34
    at Object.../../node_modules/utp/index.js (index.js:41)
    at Object.options.factory (react refresh:6)
    at __webpack_require__ (bootstrap:24)
    at fn (hot module replacement:61)
    at Object../node_modules/peer-wire-swarm/index.js (index.js:1)
    at Object.options.factory (react refresh:6)
    at __webpack_require__ (bootstrap:24)
    at fn (hot module replacement:61)
    at Object../node_modules/torrent-stream/index.js (index.js:2)

我尝试过这个: 解决方案 1 解决方案 2 解决方案 3 解决方案 4 ,但都没有任何帮助。 我已经更改了 webpack 配置,我在 config.resolve

fallback: {
        "stream": require.resolve("stream-browserify"),
        "path": require.resolve("path-browserify"),
        "crypto": require.resolve("crypto-browserify"),
        "os": require.resolve("os-browserify/browser"),
        "tty": require.resolve("tty-browserify"),
        "https": require.resolve("https-browserify"),
        "http": require.resolve("stream-http"),
        "zlib": require.resolve("browserify-zlib"),
        "constants": require.resolve("constants-browserify"),
        "fs": false,
        "dgram": false,
        "dns": require.resolve("dns"),
        "process": false
      },
中添加了这个回退
1个回答

我已经为这个问题苦苦挣扎了很长时间,现在我将分享我的问题/解决方案。

由于该项目是由多位开发人员开发的,一些开发人员使用 NPM ,而其他开发人员使用 YARN 。此外,一位开发人员安装的软件包是 NPM 软件包,而另一位开发人员 (ME) 对此并不知情,因此我运行了 npm run start ,但软件包是使用 YARN 安装的。

提示:确保您使用的是 NPM 或 YARN,并且 node_modules 文件夹中的软件包是由您使用的软件包管理器生成的。

Rodrigo Botelho
2022-03-03