Node.js WebPack5错误,找不到模块;破坏性更改:webpack< 5过去包括node.js核心的多边形填充

ktca8awb  于 2022-10-12  发布在  Node.js
关注(0)|答案(3)|浏览(478)

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

dojqjjoe

dojqjjoe1#

问题是,webpack v5不再为Node.js内置添加多边形填充,您应该在以下两种中进行选择:

  • 安装多层填充物并解决它们;或
  • 使用新的webpack接口关闭它们。

如果您选择第二个选项,使用我正在研究的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
        },
    },
};
zengzsys

zengzsys2#

对我来说,问题是vscode在我编码时自动导入了一个库:“Firestore”,它导致了一大堆错误,请注意任何未使用或无意的导入。

qfe3c7zg

qfe3c7zg3#

安装最新版本的Node(当时的Node v18.4.0)为我解决了这个问题,而不必执行任何额外的操作,如安装和解决多边形填充。

相关问题