导入Web3导致Reaction js中出现问题

2022-04-01 00:00:00 reactjs node.js ethereum javascript web3js
Compiled with problems:

错误。/node_MODULES/cipher-base/index.js 3:16-43

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction’中的‘stream’ Ode_modescipher-base‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加回退‘解决方案。回退:{&Quot;Stream&Quot;:require.resolve(";stream-browserify";)}’ -安装‘stream-Browserify’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案.回退:{&Q;流&Q;:FALSE}

错误出现在./node_MODULES/eth-lib/lib/bytes.js 9:193-227

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’crypto‘ Ode_modeseth-liblib‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加回退‘解决方案。回退:{&Quot;Crypto&Quot;:require.resolve(";crypto-browserify";)}’ -安装‘crypto-Browserify’ 如果不想包含多边形填充,可以使用如下空模块: Resolve.Fallback:{";crypto";:FALSE}

./node_modules/ethereumjs-util/dist.browser/account.js 71:31-48中的错误

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction’中的‘Assert’ Ode_modesetherumjs-utildis.Browser‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加一个后备‘Resolve.Fallback:{";Assert&Quot;:Require.Resolve(&Quot;Assert/&Quot;)}’ -安装‘Assert’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案。回退:{&Quot;Assert&Quot;:False}

./node_modules/ethereumjs-util/dist.browser/address.js 14:31-48出错

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction’中的‘Assert’ Ode_modesetherumjs-utildis.Browser‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加一个后备‘Resolve.Fallback:{";Assert&Quot;:Require.Resolve(&Quot;Assert/&Quot;)}’ -安装‘Assert’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案。回退:{&Quot;Assert&Quot;:False}

./node_modules/ethereumjs-util/dist.browser/object.js 46:31-48中的错误

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction’中的‘Assert’ Ode_modesetherumjs-utildis.Browser‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加一个后备‘Resolve.Fallback:{";Assert&Quot;:Require.Resolve(&Quot;Assert/&Quot;)}’ -安装‘Assert’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案。回退:{&Quot;Assert&Quot;:False}

错误出现在./node_MODULES/Web3-ETH-ACCOUNTS/lib/index.js 31:74-91

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’crypto‘ Ode_modesweb3-eth-count slib‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加回退‘解决方案。回退:{&Quot;Crypto&Quot;:require.resolve(";crypto-browserify";)}’ -安装‘crypto-Browserify’ 如果不想包含多边形填充,可以使用如下空模块: Resolve.Fallback:{";crypto";:FALSE}

./node_modules/web3-eth-accounts/node_modules/eth-lib/lib/bytes.js 7中的错误:193-227

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’crypto‘ ODE_MODULES Web3-ETH-帐户 Ode_modeseth-liblib‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加回退‘解决方案。回退:{&Quot;Crypto&Quot;:require.resolve(";crypto-browserify";)}’ -安装‘crypto-Browserify’ 如果不想包含多边形填充,可以使用如下空模块: Resolve.Fallback:{";crypto";:FALSE}

./node_modules/web3-providers-http/lib/index.js 30中的错误:11-26

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’http‘ Ode_modesweb3-Providers-Httplib‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加一个回退‘Resolve.Fallback:{";http";:Require.Resolve(";stream-http";)}’ -安装‘stream-http’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案.回退:{";http";:FALSE}

./node_modules/web3-providers-http/lib/index.js 32中的错误:12-28

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’HTTPS‘ Ode_modesweb3-Providers-Httplib‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加一个后备‘Resolve.Fallback:{";https";:Require.Resolve(&Quot;https-Browserify&Quot;)}’ -安装‘HTTPS-Browserify’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案.回退:{";https";:False}

./node_modules/xhr2-cookies/dist/xml-http-request.js 37中的错误:11-26

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’http‘ Ode_modesxhr2-cookie dist‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加一个回退‘Resolve.Fallback:{";http";:Require.Resolve(";stream-http";)}’ -安装‘stream-http’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案.回退:{";http";:FALSE}

./node_modules/xhr2-cookies/dist/xml-http-request.js 39中的错误:12-28

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’HTTPS‘ Ode_modesxhr2-cookie dist‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加一个后备‘Resolve.Fallback:{";https";:Require.Resolve(&Quot;https-Browserify&Quot;)}’ -安装‘HTTPS-Browserify’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案.回退:{";https";:False}

./node_modules/xhr2-cookies/dist/xml-http-request.js 41中的错误:9-22

找不到模块:错误:无法解析‘C:Blockchainlottery-Reaction中的’os‘ Ode_modesxhr2-cookie dist‘

突破性变化:webpack<;5默认支持node.js核心模块填充。 情况已经不再是这样了。验证您是否需要此模块并为其配置多边形填充。

如果要包括多边形填充,则需要: -添加回退‘解决方案。回退:{";os";:require.resolve(";os-browserify/browser";)}’ -安装‘os-Browserify’ 如果不想包含多边形填充,可以使用如下空模块: 解决方案。回退:{";os";:False}

错误

SrcApp.js 第4行:1:在模块Body中导入;重新排序到最上面的导入/第一个

搜索关键字以了解有关每个错误的详细信息。


解决方案

您好,我也正在解决此问题。

原来这更像是从WebPack4过渡到5的情况。需要手动添加webpack node polyfill

以我的情况 npm install react-app-rewired --saveexposes webpack config npm install npm install node-polyfill-webpack-plugin --save

config-overrides.js根目录

module.exports = function override(config, env) {
  config.plugins.push(new NodePolyfillPlugin({
    excludeAliases: ["console"]
  }))
  return config
}

相关文章