webpack3.0之loader配置及編寫(一)


loader 用於對模塊的源代碼進行轉換。loader 可以使你在 import 或"加載"模塊時預處理文件。loader 可以將文件從不同的語言(如 TypeScript)轉換為 JavaScript,或將內聯圖像轉換為 data URL。loader 甚至允許你直接在 JavaScript 模塊中 import CSS文件!

在深入學習對loader的編寫之前,我們先熟悉下loader的常見配置規則。常見的有兩種配置規則:

規則1:

loader配置中options的值可以在loader執行過程中獲取到,進行相應處理,也可以直接在loader路徑中添加query參數如下配置:

rules: [
   {

      test: /\.text$/,
      loader: 'text-loader?name=1'//如果配置了options選項時,在路徑中添加的query參數就無法獲取到了
   }
]

你還可以使用 resolveLoader.modules 配置,webpack 將會從這些目錄中搜索這些 loaders。例如,如果你的項目中有一個 /loaders 本地目錄,目錄中有一個loader文件名為text-loader.js,那么可以這樣配置:

resolveLoader: {
  modules: [
    'node_modules',
    path.resolve(__dirname, 'loaders')
  ]
},
module: {
    rules: [

        {

          test: /\.text$/,
          loader: 'text-loader'//如果node_modules目錄中不存在,那么會取loaders目錄中查找
        }
    ]

}

如果你想對某一類型的文件匹配多個loader,可以按照下列規則配置,多個loader模塊用!分割,並且實際loader執行順序是從右往左,多個loader串聯的作用和如何使用參考下篇文檔。

{
test: /\.scss$/,
loader:'style-loader!css-loader!sass-loader'
}

規則2:

如果想匹配多個loader,還可以使用use配置數組,實際loader執行順序是從下往上

{
  test: /\.scss$/,
  use:[
    {
      loader:'style-loader',
      options:{}
    },
    {
    loader:'css-loader'
   },

    {
    loader:'sass-loader'
   }

  ]
}

如果對於引入的loader不做格外的配置,那么可以在use數組中添加loader名即可:

{
  test: /\.scss$/,
  use:['style-loader','css-loader','sass-loader']
}

在熟悉了對loader的基本配置規則之后,那么我們就開始學習如何編寫自己的loader吧

webpack3.0加載器loader配置及編寫(二)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM