【问题标题】:Couldn't import web3 library in react application无法在反应应用程序中导入 web3 库
【发布时间】:2022-01-02 16:15:24
【问题描述】:

./node_modules/cipher-base/index.js 3:16-43 中的错误

找不到模块:错误:无法解析“C:\Users\Sumana\Desktop\Web3\web3app\node_modules\cipher-base”中的“流”

重大变化:webpack

如果你想包含一个 polyfill,你需要: - 添加一个后备 'resolve.fallback: { "stream": require.resolve("stream-browserify") }' - 安装“流浏览器” 如果您不想包含 polyfill,则可以使用这样的空模块: resolve.fallback: { "stream": false }

【问题讨论】:

标签: node.js reactjs web3js decentralized-applications


【解决方案1】:

您可以通过 2 种方式解决此问题。

  • 删除 node_module 然后将您的 react-scripts 版本从 "5.0.0" 更改为 "4.0.3 " 之后运行 npm install

  • 配置 webpack。

1 - 安装这些软件包。

npm install fs assert https-browserify os os-browserify stream-browserify stream-http react-app-rewired

2 - 在 package.json 旁边的项目根目录中创建 config-coverrides.js

const webpack = require('webpack');
module.exports = function override(config, env) {
    config.resolve.fallback = {
        url: require.resolve('url'),
        fs: require.resolve('fs'),
        assert: require.resolve('assert'),
        crypto: require.resolve('crypto-browserify'),
        http: require.resolve('stream-http'),
        https: require.resolve('https-browserify'),
        os: require.resolve('os-browserify/browser'),
        buffer: require.resolve('buffer'),
        stream: require.resolve('stream-browserify'),
    };
    config.plugins.push(
        new webpack.ProvidePlugin({
            process: 'process/browser',
            Buffer: ['buffer', 'Buffer'],
        }),
    );

    return config;
}

【讨论】:

  • 这回答了问题。
【解决方案2】:

上周我也遇到了这个问题。它已在许多地方记录在案。我不明白如何修复它,但似乎制作图书馆的人会修复它https://github.com/ChainSafe/web3.js/issues/4659

【讨论】:

  • 目前还没有解决方案,谢谢您的回复
猜你喜欢
  • 2020-02-17
  • 2021-09-03
  • 2020-09-28
  • 2020-03-20
  • 2019-10-12
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
  • 2021-09-25
相关资源
最近更新 更多