2017-03-24 15 views
30

W niektórych przykładach WebPACK widzisz odniesienie do "zasady" tablicy:Zasady wobec ładowarek w pakiecie Webpack - Jaka jest różnica?

module.exports = { 
    module: { 
    rules: [ 
     { 
     test: /\.scss$/, 
     use: ExtractTextPlugin.extract({ 
      fallback: 'style-loader', 
      //resolve-url-loader may be chained before sass-loader if necessary 
      use: ['css-loader', 'sass-loader'] 
     }) 
     } 
    ] 
    }, 
    plugins: [ 
    new ExtractTextPlugin('style.css') 
    //if you want to pass in options, you can do so: 
    //new ExtractTextPlugin({ 
    // filename: 'style.css' 
    //}) 
    ] 
} 

(https://github.com/webpack-contrib/extract-text-webpack-plugin)

iw innych, tablicy Ładowarki:

var ExtractTextPlugin = require("extract-text-webpack-plugin"); 
module.exports = { 
    module: { 
     loaders: [ 
      { 
       test: /\.css$/, 
       loader: ExtractTextPlugin.extract({ 
        loader: "css-loader" 
       }) 
      }, 
      { test: /\.png$/, loader: "file-loader" } 
     ] 
    }, 
    plugins: [ 
     new ExtractTextPlugin({ 
      filename: "style.css", 
      allChunks: true 
     }) 
    ] 
}; 

(https://github.com/webpack/webpack/tree/master/examples/css-bundle)

Jaka jest różnica? Które powinno się stosować?

+6

https://webpack.js.org/guides/migrating/#module-loaders-is-now-module-rules – Ivan

Odpowiedz

45

Ładowarki są używane w pakiecie Webpack 1, a reguły w pakiecie internetowym 2. Mówią, że "Ładowarki" w przyszłości zostaną wycofane na rzecz module.rules.

Zobacz Migrating Versions na oficjalnej stronie Webpack.

module.loaders jest teraz module.rules

Stara konfiguracja ładowarka została zastąpiona przez bardziej zaawansowanych zasad systemowych , który umożliwia konfigurację ładowarek i więcej. Ze względu na kompatybilność , stara składnia modules.loaders jest nadal ważna , a stare nazwy są analizowane. Nowe konwencje nazewnictwa są łatwiejsze do zrozumienia i są dobrym powodem do uaktualnienia konfiguracji do korzystania z module.rules.

+0

Jakieś oficjalne referencje? –

+1

https://webpack.js.org/guides/migrating/#module-loaders-is-now-module-rules –

+0

Kiedy dodałem integrację babel, skorzystałem z sekcji ładowarek z przykładu bez zwracania uwagi na ten aspekt, ale mój projekt korzystał z reguł, które przeszły po sekcji ładowarek. Spędziłem kilka godzin badając, dlaczego babel nie działa !!! ponieważ reguły po prostu cicho zastępują sekcję ładowników :( –

Powiązane problemy