【问题标题】:Web3 Issue : React Application not compilingWeb3 问题:React 应用程序未编译
【发布时间】:2022-01-25 02:08:49
【问题描述】:

我在编译时遇到了 React 应用程序的问题。 请在下面找到问题并截图。

ERROR in ./node_modules/web3-providers-http/lib/index.js 30:11-26
Module not found: Error: Can't resolve 'http' in '/Users/rohit/Downloads/Personal/web3/react-minting-website/node_modules/web3-providers-http/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }'
        - install 'stream-http'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "http": false }
 @ ./node_modules/web3-core-requestmanager/lib/index.js 56:16-46
 @ ./node_modules/web3-core/lib/index.js 23:23-58
 @ ./node_modules/web3/lib/index.js 32:11-31
 @ ./src/index.js 10:0-24 14:13-17

经过审查,我发现问题与 web3 相关的依赖项有关:

https://www.npmjs.com/package/web3
https://www.npmjs.com/package/@web3-react/core
https://www.npmjs.com/package/@web3-react/injected-connector

有人可以帮助我吗?我正在使用 LTS 版本,这些是什么稳定版本?

请提出建议。

【问题讨论】:

    标签: javascript reactjs create-react-app web3 web3js


    【解决方案1】:

    随着 webpack 规模的增长,他们删除了 webpack5 中的 polyfill。看起来您正在使用 create-react-app (CRA) 并且 webpack 配置未在 CRA 中向用户公开。您可以使用eject 公开它。你可能在 package.json 中有这个脚本:

       "eject": "react-scripts eject"
    

    所以运行npm run eject。不建议这样做,因为这意味着您将不再受益于 CRA 的更新。

    您可以使用rewirecraco 处理弹出。

    获得 webpack 配置后,您需要将 resolve 属性添加到 webpack 配置并安装所有需要的包:

    resolve: {
        extensions: [".js", ".css"],
        alias: {
          // add as many aliases as you like!
          // optional
          components: path.resolve(__dirname, "src/components"),
        },
        fallback: {
          // path: require.resolve("path-browserify"),
          fs: false,
          assert: require.resolve("assert/"),
          os: require.resolve("os-browserify/browser"),
          constants: require.resolve("constants-browserify"),
          stream: require.resolve("stream-browserify"),
          crypto: require.resolve("crypto-browserify"),
          http: require.resolve("stream-http"),
          https: require.resolve("https-browserify"),
        },
      },
    

    我有webpac5 Boilerplate。如果你愿意,你可以使用它:

    webpack5 boilerplate github repo

    【讨论】:

    • @RohitMittal 祝你好运
    猜你喜欢
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    相关资源
    最近更新 更多