使用库时,未捕获: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