【问题标题】:Node.js webpack5 error, Module not found; BREAKING CHANGE: webpack < 5 used to include polyfills for node.js coreNode.js webpack5 错误,找不到模块;重大变化:webpack < 5 用于包含 node.js 核心的 polyfill
【发布时间】:2022-06-22 15:10:29
【问题描述】:

我经常收到此错误消息,但不知道如何解决它:

【问题讨论】:

    标签: node.js reactjs express


    【解决方案1】:

    问题是 Webpack v5 不再为 Node.js 内置插件添加 polyfill,您应该选择:

    • 安装 polyfill 并解决它们;或
    • 使用新的 Webpack API 将其关闭。

    如果您选择第二个选项,请使用我正在开发的Putout 代码转换器,它会在@putout/plugin-webpack 的帮助下为您解决所有问题。这是它的样子:

    convert-node-to-resolve-fallback 修复 webpack 编译错误:

    Module not found: Error: Can't resolve 'path'`
    
    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.
    

    不正确的代码:

    module.exports = {
        node: {
            path: 'empty',
            buffer: 'empty',
            crypto: 'empty'
        },
    };
    

    正确代码:

    module.exports = {
        resolve: {
            fallback: {
                path: false,
                buffer: false,
                crypto: false
            },
        },
    };
    

    【讨论】:

    • 谢谢!我应该把它放在我的代码哪里?
    • 到你的 webpack.config.js
    • 我是这样放的,还是不行:
    • 能否请您出示一下您的配置?
    • 我不知道 gow 将图片放入 cmets 以向您显示我的错误和配置...我在配置中的所有代码都是您给我的代码。
    【解决方案2】:

    安装最新版本的 Node(当时是 Node v18.4.0)为我解决了这个问题,而无需执行任何额外的操作,例如安装和解析 polyfill。

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 2022-10-20
      • 2022-08-20
      • 2022-08-17
      • 2021-09-20
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      相关资源
      最近更新 更多