【问题标题】:Webpack 5 does not support polyfills for Node.jsWebpack 5 不支持 Node.js 的 polyfill
【发布时间】:2021-09-20 09:46:25
【问题描述】:

我有一个适用于 Angular 和 Node.js 的 npm 包。 最近,我开始在 Angular v12 项目中使用我的包。 我收到如下错误:

重大变化:webpack

我需要这些包(例如'path'),我无法切换到 Webpack 替代方案(例如'path-browserify'),因为我需要在 nodejs 上工作。

错误提示:

如果你想包含一个 polyfill,你需要: - 添加一个后备 'resolve.fallback: { "path": require.resolve("path-browserify") }' - 安装“路径浏览器”

安装“path-browserify”很容易。但是,该错误并未说明在何处添加回退。我在一些帖子中发现建议我需要将其添加到 Webpack.config.js。但是在Angular项目中,没有这样的文件;添加它没有任何效果。而且即使有这样的文件,也无济于事,因为我是一个 npm 包,我无法更改使用我的应用程序中的文件。

我可以为“路径”包编写一个解决方法。但是,其他软件包引发了该错误。一些包(例如,suppertest)并不适用于 webpack,我在 angular 上运行时没有使用它们,但由于它们在我的代码中,webpack 仍然会引发此错误。我还在使用其他使用有问题的软件包的软件包,例如“路径”或“流”,我无法更改它们。如何解决这个问题?

【问题讨论】:

  • 你尝试过使用 Babel ????????

标签: node.js angular npm webpack polyfills


【解决方案1】:

由于错误状态,您应该在 webpack 配置文件中添加 resolve.fallback: { "path": require.resolve("path-browserify") }

// webpack.config.js

module.export = {
  ...
  resolve: {
    fallback: {
      path: require.resolve("path-browserify")
    }
  }
  ...
}

【讨论】:

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