首页 > 解决方案 > Webpack 错误 - configuration.node 具有未知属性“fs”

问题描述

我在使用最新版本的 Webpack (5.1.0) 时遇到了错误。看起来配置正在引发错误,因为验证模式过于严格。这是我的 webpack 配置文件,以及我看到的错误消息。

Webpack.config.js

https://gist.github.com/adarshbhat/3ec5950b66b78102da0cf46e51a3d633

错误

[webpack-cli] 
Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.
 - configuration.node should be one of these:
   false | object { __dirname?, __filename?, global? }
   -> Include polyfills or mocks for various node stuff.
   Details:
    * configuration.node has an unknown property 'module'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.
    * configuration.node has an unknown property 'net'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.
    * configuration.node has an unknown property 'fs'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! jstest@1.0.0 start: `webpack serve`
npm ERR! Exit status 2

我正在尝试使用在 Node.js 环境和浏览器中都可以工作的解析器生成器库(antlr4)。看起来库代码需要像 fs 这样的全局对象,如果它是空的,则假定它在浏览器环境中。根据Antlr4Webpack的文档,这是一个支持的配置文件。但它不起作用。请帮忙。

版本

更新(2020 年 10 月 29 日)

Antlr JavaScript 文档现已更新为 Webpack 5 的新配置

标签: javascriptnode.jswebpackantlr4

解决方案


在 Webpack 团队的帮助下,我设法让它工作起来。不再支持使用 antlr4 文档推荐的以下 webpack 配置。

不工作

{
  node: {
    fs: 'empty',
    module: 'empty',
    net: 'empty'
  }
}

工作配置

{
  resolve: {
    fallback: {
      fs: false
    }
  }
}

有了这个,我就可以让我的 JavaScript 解析器工作了。

请注意,我们正在努力更新 antlr4 以生成基于 ES6 的代码。将来可能不需要此配置。


推荐阅读