javascript - 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 这样的全局对象,如果它是空的,则假定它在浏览器环境中。根据Antlr4和Webpack的文档,这是一个支持的配置文件。但它不起作用。请帮忙。
版本
- 网络包:5.1.0
- webpack-cli:4.0.0
- webpack-dev-middleware:3.7.2
- 网络包开发服务器:3.11.0
更新(2020 年 10 月 29 日)
Antlr JavaScript 文档现已更新为 Webpack 5 的新配置
解决方案
在 Webpack 团队的帮助下,我设法让它工作起来。不再支持使用 antlr4 文档推荐的以下 webpack 配置。
不工作
{
node: {
fs: 'empty',
module: 'empty',
net: 'empty'
}
}
工作配置
{
resolve: {
fallback: {
fs: false
}
}
}
有了这个,我就可以让我的 JavaScript 解析器工作了。
请注意,我们正在努力更新 antlr4 以生成基于 ES6 的代码。将来可能不需要此配置。
推荐阅读
- asp.net-mvc - Asp.Net MVC - ViewModel vs Domain Model vs Entity Model
- uml - UML 状态机:本地转换
- android - 在 Recyclerview 适配器中获取项目是否完全可见
- firefox - 在 OEL (Oracle Enterprise Linux) 上安装 Firefox
- amazon-mws - MWS 中的 GetLowestPricedOffersForASIN 和 GetLowestOfferListingsForASIN 有什么区别
- mvvm - 检查 WPF MVVM 绑定中更改的属性
- google-apps-script - 将带有图标的项目添加到 Google Apps 脚本中的菜单
- java - 我可以使用惰性初始化来使用 RmiServiceExporter 吗?
- python - python3 - 如何使用 python 请求克服最大 url 限制
- c# - C# VSTO AddIn 查找字段功能区