2017-03-24 16 views
30

、あなたは "ルール" 配列への参照を参照してください。ルールとWebpackのローダー - 違いは何ですか?いくつかのWebPACK例で

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

そして、他の、ローダ・アレイ内:

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)を

違いは何ですか?どちらを使うべきですか?

+6

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

答えて

45

ローダーはWebpack 1で使用され、RulesはWebpack 2で使用されます。将来、「ローダー」は非推奨となり、module.rulesが使用されなくなります。

公式WebpackサイトのMigrating Versionsを参照してください。

module.loaders今古いローダー設定がローダーとより多くの構成を可能にする、より強力なルール システム、取って代わられた

module.rulesです。 の互換性の理由により、古いmodule.loaders構文は有効なままで、 であり、古い名前が解析されます。新しい命名規則は、 を理解するのが容易であり、 module.rulesを使用するように構成をアップグレードすることをお勧めします。

+0

オフィシャルリファレンスはありますか? –

+1

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

+0

私は、この側面に注意を払うことなく、例からローダーセクションを使用しました。私のプロジェクトはローダーセクションの後に行われたルールを使用していました。私は数時間を費やして、なぜバベルが働いていないのか調査しました!ルールが単に静かにローダーセクションをオーバーライドするので、 –

関連する問題