我在使用最新版本的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
我正在尝试使用一个解析器生成器库(antlr4),该库既可以在Node.js环境中工作,也可以在浏览器中工作。看起来该库的代码需要全局对象,如fs,并且如果为空,则假定它处于浏览器环境中。根据Antlr4的文档和Webpack的文档,这是一种支持的配置文件。但是它没有起作用。请帮忙。
版本: webpack:5.1.0 webpack-cli:4.0.0 webpack-dev-middleware:3.7.2 webpack-dev-server:3.11.0
更新(2020年10月29日): Antlr JavaScript文档现已更新为Webpack 5的新配置。
require
那些模块。如果它接收到一个空对象,那么它就会认为它在浏览器环境中。这是该库能够在Node.js环境和浏览器环境中同时运行的原因。看起来其他人已经能够在较旧版本的Webpack中使其正常工作。 - redabwindow
或document
是否已定义:if (typeof window !== 'undefined') ...
如果没有,则您在node.js中。 - slebetmanantlr4
库包中实现。我只是一个试图使用它的可怜人。如果这是一种被支持的配置,我的希望是 Webpack 可以修复这个问题。 - redab