webpack 常用loader、Plugins和Mode配置及解析規(guī)則

loader

名稱 描述
babel-loader 轉(zhuǎn)換ES6、ES7等JS新特性語法
css-loader 支持.css文件的加載和解析
less-loader 將less文件轉(zhuǎn)換成css
ts-loader 將TS轉(zhuǎn)換成JS
file-loader 進行圖片、字體等的打包
url-loader 進行圖片、字體等的打包,還可設(shè)置較小資源的自動base64
raw-loader 將文件以字符串的形式導(dǎo)入
thread-loader 多進程打包JS和CSS

Plugins

名稱 描述
CommonsChunkPlugin 將chunks相同的模塊代碼提取成公共js
CleanWebpackPlugin 清理構(gòu)建目錄
ExtractTextWebpackPlugin 將CSS從bundle文件里提取成一個獨立的CSS文件
CopyWebpackPlugin 將文件或者文件夾拷貝到構(gòu)建的輸出目錄
HtmlWebpackPlugin 創(chuàng)建html文件承載輸出的bundle
UglifyjsWebpackPlugin 壓縮JS
ZipWebpackPlugin 將打包出的資源生成一個zip包

Mode

名稱 描述
development 設(shè)置process.env.NODE_ENV的值為development.開啟NamedChunksPluginNamedModulesPlugin.
production 設(shè)置process.env.NODE_ENV的值為production.開啟FlagDependencyUsagePlugin,FlagIncludedChunksPlugin,ModuleConcatenationPluginNoEmitOnErrorsPlugin,OccurenceOrderPlugin,SideEffectsFlagPluginTerserPlugin。
none 不開啟任何優(yōu)化選項

css解析

css-loader 用于加載 .css 文件,并且轉(zhuǎn)換成commonjs 對象;
style-loader 將樣式通過 <style> 標簽插入到 head 中。
loader 的調(diào)用順序是鏈式調(diào)用的,是從右到左的,所以在配置 rules 的時候,要注意兩者的先后順序

module: {
    rules: [
      {
        test: /.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      }
    ]
  }

less 解析

加載 less 和 less-loader
同 css 解析規(guī)則一樣,需要將 less-loader 放置到 use 最右面

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

url-loader

進行圖片、字體等的打包,還可設(shè)置較小資源的自動base64
優(yōu)點:可以減少一次http請求
缺點:會使打包文件變大,延長首次加載白屏?xí)r間

      {
        test: /.(png|jpg|gif|jpeg)$/,
        use: [{
          loader: 'url-loader',
          options: {
            limit: 10240 // 如果圖片大小小于10k,自動打包成base64
          }
        }]
      }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容