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 的文档,这是一个受支持的配置文件。但它不起作用。请帮忙。

版本

  • 网络包:5.1.0
  • webpack-cli: 4.0.0
  • webpack-开发中间件:3.7.2
  • webpack-开发服务器:3.11.0

更新(2020 年 10 月 29 日)

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

原文由 redab 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

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

不起作用

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

工作配置

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

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

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

原文由 redab 发布,翻译遵循 CC BY-SA 4.0 许可协议

Next.js 用户:

 module.exports = {
  webpack: (config, { isServer }) => {
    if (!isServer) {
      config.resolve.fallback.fs = false;
    }
    return config;
  },
}

资源

原文由 ZenVentzi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏