J'ai rencontré une erreur lors de l'utilisation de la dernière version de Webpack (5.1.0). On dirait que la configuration lance une erreur car le schéma de validation est trop restrictif. Voici mon fichier de configuration WebPack dans un gist et le message d'erreur que je vois.
webpack.config.js
https://gist.github.com/atarshbhat/3ec5950b66b78102da0cf46e51a3d6
erreur
[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! [email protected] start: `webpack serve`
npm ERR! Exit status 2
Je tente d'utiliser une bibliothèque de générateurs d'analyseurs (AntLR4) qui fonctionne à la fois dans un environnement nœud.js, ainsi que dans les navigateurs. On dirait que le code de la bibliothèque nécessite des objets globaux tels que FS, et s'il est vide, suppose que c'est dans un environnement de navigateur. Selon la Documentation d'AntLR4 et celle de WebPack , il s'agit d'un fichier de configuration pris en charge. Mais ça ne fonctionne pas. S'il vous plaît aider.
Versions
Mise à jour (29 octobre 2020)
ANTLR JavaScript Documentation a maintenant été mise à jour avec la nouvelle configuration de WebPack 5
Assez intéressant, je reçois en cas de path
(mais pas avec file
) Le message suivant, plus clair de WebPack CLI:
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "path": false }
Cependant, il me semble que ces informations devraient également être trouvées ici et supprimé l'affirmation selon laquelle tout module intégré peut être utilisé comme propriété: https://webpack.js.org/configuration/node/#node