web-dev-qa-db-fra.com

Noeud v9 + Webpack v4 + extrait-texte-webpack-plugin = Erreur de compilation

//webpack.config.js -- shortened for convenience

const 
  ExtractTextPlugin = require("extract-text-webpack-plugin"),

  extractSass = new ExtractTextPlugin({
    filename: "Css/[name].css",
    allChunks: true
  }),

  //…
  config: {
    module: {
      rules: [
        //…
        {
          test: /\.scss$/,
          use: extractSass.extract([ 'css-loader', 'sass-loader' ])
        }
        //…
      ]

    },

    plugins: [
      extractSass
    ]
  }

  module.exports = config;

Lorsqu'il est utilisé:

         0% compiling(node:333) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
(node:333) DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead                                                                                                                                                   
        77% module and chunk tree optimization unnamed compat plugin/xxx/node_modules/webpack/lib/Chunk.js:460
                throw new Error(
                ^

 Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
    at Chunk.get (/xxx/node_modules/webpack/lib/Chunk.js:460:9)
    at /xxx/node_modules/extract-text-webpack-plugin/dist/index.js:176:48
    at Array.forEach (<anonymous>)
    at /xxx/node_modules/extract-text-webpack-plugin/dist/index.js:171:18
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/xxx/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:12:1)
    at AsyncSeriesHook.lazyCompileHook [as _callAsync] (/xxx/node_modules/tapable/lib/Hook.js:35:21)
    at Compilation.seal (/xxx/node_modules/webpack/lib/Compilation.js:881:27)
    at hooks.make.callAsync.err (/xxx/node_modules/webpack/lib/Compiler.js:464:17)
    at _err0 (eval at create (/xxx/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:11:1)
    at _addModuleChain (/xxx/node_modules/webpack/lib/Compilation.js:749:12)
    at processModuleDependencies.err (/xxx/node_modules/webpack/lib/Compilation.js:688:9)
    at process._tickCallback (internal/process/next_tick.js:150:11)

Cette configuration fonctionnait jusqu’à webpack v4. Désactiver le plugin fait disparaître l'erreur. J'ai trouvé que le système de plug-in webpacks avait changé, mais je ne savais pas comment corriger cette erreur.

17
philipp

Comme décrit ici , le problème est que le extract-text-webpack-plugin Doit être mis à niveau pour fonctionner avec webpack v4. Alors:

npm install extract-text-webpack-plugin@next

va certainement résoudre le problème.

41
philipp

Il semble que extract-text-webpack-plugin soit obsolète pour Webpack v4. Voir le README , qui dit:

⚠️ Depuis webpack v4, le plug-in extract-text-webpack-plug-in ne doit pas être utilisé pour css. Utilisez mini-css-extract-plugin à la place.

Ce numéro L’avenir de ce plugin par rapport au plugin Mini CSS Extract fournit plus d’informations sur la désapprobation.

6
DoctorBud

Utilisez cette version "extract-text-webpack-plugin": "^ 4.0.0-beta.0",

0
Arunsai B K