42 votes

Comment remplir les modules de base des nœuds dans webpack 5

Webpack 5 ne fait plus d'auto-polyfilling pour les modules node core. Comment corriger cela s'il vous plaît ? PS : Je suis un débutant en développement donc la solution doit être bien décrite pour moi.

errors

29voto

Maqsood Ahmed Points 371

J'ai également obtenu ces erreurs lors de la mise à jour de webpack v4 à v5. Résolu par

ajout de la propriété resolve.fallback

propriété du nœud supprimé

{
resolve: {
  modules: [...],
  fallback: {
    "fs": false,
    "tls": false,
    "net": false,
    "path": false,
    "zlib": false,
    "http": false,
    "https": false,
    "stream": false,
    "crypto": false,
    "crypto-browserify": require.resolve('crypto-browserify'), //if you want to use this module also don't forget npm i crypto-browserify 
  } 
},
entry: [...],
output: {...},
module: {
  rules: [...]
},
plugins: [...],
optimization: {
  minimizer: [...],
},
// node: {
//   fs: 'empty',
//   net: 'empty',
//   tls: 'empty'
// },
}

passer de la v4 à la v5 => https://webpack.js.org/migrate/5/#clean-up-configuration

20voto

Richie Bendall Points 1694

Support Readd pour les modules de base de Node.js avec node-polyfill-webpack-plugin :

Une fois le paquet installé, ajoutez ce qui suit à votre webpack.config.js :

const NodePolyfillPlugin = require("node-polyfill-webpack-plugin")

module.exports = {
    // Other rules...
    plugins: [
        new NodePolyfillPlugin()
    ]
}

16voto

Tr1gZer0 Points 422

Je pense que la plupart des réponses apportées ici résoudront votre problème. Cependant, si vous n'avez pas besoin de Polyfills pour votre développement node, alors je vous suggère d'utiliser target: 'node' dans la configuration de votre module Webpack. Cela m'a permis de résoudre le problème.

Voici une documentation sur la réponse : https://webpack.js.org/concepts/targets/

enter image description here

12voto

Lukas Bach Points 891

Il semble que vous ayez utilisé la fonction path qui n'est pas inclus par défaut dans les constructions de webpack. Pour moi, l'extension de la configuration de webpack comme ceci a aidé :

{
  // rest of the webpack config
  resolve: {
    // ... rest of the resolve config
    fallback: {
      "path": require.resolve("path-browserify")
    }
  },
}

Installez également path-browserify via npm install path-browserify --save-dev o yarn add path-browserify --dev si vous utilisez du fil.

3voto

Maxim Kiselyow Points 35

npm install path-browserify puis essayez de changer la configuration de webpack en include :

module.exports = {
    ...
    resolve: {
        alias: {
            path: require.resolve("path-browserify")
        }
    }
};

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X