如何修复“重大更改:webpack < 5 默认情况下用于包含 Node.js 核心模块的 polyfills”错误?

2024-03-13

我想用"web3" and “walletconnect/web3-provider”vue 和 laravel 8 上的包。我通过 npm i --save web3 @walletconnect/web3-provider 命令安装它,然后添加以下代码以导入到 vue。

import Vue from "vue";
import Web3 from "web3";
import WalletConnect from "@walletconnect/client";
import QRCodeModal from "@walletconnect/qrcode-modal"
import WalletConnectProvider from "@walletconnect/web3-provider";

const connector = new WalletConnect({
    bridge: "https://bridge.walletconnect.org", // Required
    qrcodeModal: QRCodeModal,
});
window.walletConnector = connector;

//  Create WalletConnect Provider
const provider = new WalletConnectProvider({
    infuraId: "27e484dcd9e3efcfd25a83a78777cdf1",
});

//  Enable session (triggers QR Code modal)
await provider.enable();

但我收到这个错误:

./node_modules/cipher-base/index.js 2:16-43 中的错误未找到模块: 错误:无法解析“流” '/var/www/tok/node_modules/cipher-base'

重大变更:webpack

如果你想包含一个polyfill,你需要:

  • 添加后备 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
  • 安装'stream-browserify' 如果你不想包含一个polyfill,你可以使用一个空模块,如下所示:resolve.fallback: { “流”:假}

./node_modules/keccak/lib/api/keccak.js 中的错误 1:22-39 模块不存在 发现:错误:无法解析“流” '/var/www/tok/node_modules/keccak/lib/api'

重大变更:webpack

如果你想包含一个polyfill,你需要:

  • 添加后备 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
  • 安装'stream-browserify' 如果你不想包含一个polyfill,你可以使用一个空模块,如下所示:resolve.fallback: { “流”:假}

./node_modules/keccak/lib/api/shake.js 中的错误 1:22-39 模块不存在 发现:错误:无法解析“流” '/var/www/tok/node_modules/keccak/lib/api'

重大变更:webpack

如果你想包含一个polyfill,你需要:

  • 添加后备 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
  • 安装'stream-browserify' 如果你不想包含一个polyfill,你可以使用一个空模块,如下所示:resolve.fallback: { “流”:假}

webpack编译有3个错误

显然这个错误与Webpack配置有关。我该如何解决?有人可以帮助我吗?


Run npm i react-app-rewired

创建 config-overrides.js 文件并添加以下内容:

const webpack = require('webpack');
module.exports = function override(config, env) {

    config.resolve.fallback = {
        url: require.resolve('url'),
        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;
}

安装 config-overrides.js 中的所有软件包。

在 package.json 中,替换脚本:

"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
  },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复“重大更改:webpack < 5 默认情况下用于包含 Node.js 核心模块的 polyfills”错误? 的相关文章

随机推荐

  • 通过鼠标悬停定位工具提示

    我正在使用以下链接中找到的代码 https www d3 graph gallery com graph heatmap tooltip html https www d3 graph gallery com graph heatmap t
  • TemplateHaskell 和 IO

    如果 TH 的功能有副作用 是否有任何适当的方法可以确保它们的安全 比如说 我想要一个在编译时调用 git 并生成版本字符串的函数 LANGUAGE TemplateHaskell module Qq where import System
  • 在导航 goBack 上发送道具

    基本上我有三个屏幕 第一个是堆栈导航器 const stackNav createStackNavigator Main screen MainScreen navigationOptions navigation gt header nu
  • mvc c# jquery 如果记录存在则更新视图的一部分,否则更新表

    我正在寻求有关如何实现此功能的建议 像往常一样 我有一个带有编辑框的页面 用户在其中提交带有输入的页面 其唯一目的是将其保存到记录中 但是我想要做的 为了避免重复 是首先在表中搜索任何相似的记录 如果有任何相似的记录 我想将其返回给用户 在
  • MVVM 实现的问题:对所选项目的更改传播到列表,不希望这样

    所以我遇到了这个问题 希望你能帮忙解决 我正在使用 MVVM Light 作为框架编写 WPF 应用程序 在这种情况下 我有一个项目列表 并且 SelectedItem 绑定到用户可以在其中编辑项目的详细信息视图 在本例中 有一个 保存 按
  • jQuery 模糊事件未触发

    我是 jQuery 新手 所以我打赌我做错了什么 但我不明白为什么这个事件没有触发 我有一个 textarea 元素 由于正在接受数据的应用程序 需要在提交之前删除所有分隔符 我试图在文本区域失去焦点时进行清理 因此采用模糊方法 不幸的是
  • 读取 csv 时区错误

    经过几个小时的谷歌搜索后 我没有找到解决这个问题的方法 基本上当我跑步时read csv some file csv 函数来自readr包我收到以下错误 错误 未知 TZ UTC 并且 csv 未被读取 我读取 CSV 的唯一方法是这样 r
  • Django 管理员:有条件地设置 list_display

    是否有任何管理模型方法 如 get list display 或某种方式 我可以有一些条件来设置不同的 list display 值 class FooAdmin model ModelAdmin def get list display
  • 如何重置ReactJS文件输入

    我有文件上传输入
  • 如何检测c#中的虚拟方法是否被重写[重复]

    这个问题在这里已经有答案了 是否可以确定虚拟方法是否已被重写 class ABase public void DoSomething object p p Process if DoSomethingExtra is implemented
  • 从命令为 pthread 引导 symfony2

    我正在尝试从 symfony 2 命令启动线程 protected function execute InputInterface input OutputInterface output parser this gt getContain
  • 当我从桌面会话恢复时发出警告。 Emacs

    昨天我从 EmacsWiki 找到了桌面模式 然后我为我的 Emacs 24 配置了它 Desktop require desktop save the desktop file automatically if it already ex
  • 扩展方法存在问题:IXmlLineInfo

    当我尝试在 ascx control 中的类中使用任何扩展方法时 这是世界上最简单的方法 namespace VfmElita Page Stat public static class TestExtention public stati
  • 将 1 转换为 01

    我有一个 1 99 之间的整数 如何让它始终为两位数 即 01 04 21 想必您的意思是将数字存储在字符串中 从 JDK1 5 开始就有了String format http download oracle com javase 1 5
  • string.toUppercase() 在堆或字符串池中创建了一个新对象

    如果我们使用toUpperCase String类的方法 是否将对象放入堆中而不是在String池中创建它 下面是代码 当我运行时 我可以推断新创建的字符串对象不在字符串池中 public class Question public sta
  • 如何更改seaborn.objects的图像大小

    解决方案如图所示如何更改seaborn轴或图形级别图的图形大小 https stackoverflow com q 31594549 7758804不为seaborn objects 这个问题是关于添加的新界面seaborn v0 12 尝
  • 为 Bargain Finder Max Flight 选择不同的回程航班

    我正在开发一个由 Sabre 的 Soap Api 提供支持的旅行应用程序 我正在使用给定的请求调用 BargainFinderMax BFM 端点
  • 模拟和目录条目

    我成功模拟了用户帐户 但无法使用模拟帐户绑定到 AD 并下拉DirectoryEntry 下面的代码输出 在模拟之前我是 DOMAIN user 模拟后我是 DOMAIN admin 错误 C Users user ADSI Imperso
  • 在 Emacs 启动期间运行我自己的代码

    假设我有自己的 elisp 代码 bin hello el The emacs文件有以下代码要运行hello el在启动时 add to list load path bin elisp require hello 但是 我收到以下错误消息
  • 如何修复“重大更改:webpack < 5 默认情况下用于包含 Node.js 核心模块的 polyfills”错误?

    我想用 web3 and walletconnect web3 provider vue 和 laravel 8 上的包 我通过 npm i save web3 walletconnect web3 provider 命令安装它 然后添加以