整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          webpack loader使用

          節我們來學習 webpackloader 加載器的使用,那么什么是 loader 呢。從本質上來說,loader 就是一個 Node.js 模塊,在 webpack 的定義中,loader 導出一個函數,loader 會在轉換源模塊的時候調用該函數。

          webpack 本身依然是只能處理 JS 文件的,但是通過一系列的 loader ,就可以處理其他文件啦。例如 LessSass,以前我們編譯這些 CSS 預處理器,需要使用 gulp 進行編譯,而顯示可以通過 webpack 中的 loader 加載器來實現。

          常見loader

          webpack 中有一系列的 loader,在實際項目中,我們會根據不同的需求使用到不同的 loader。例如 webpack 中的一些常見 loader 如下所示:

          • css-loader : 用于處理 css 文件,使得能在 js 文件中引入使用。
          • style-loader : 用于將 css 文件注入到 index.html 中的 <style> 標簽上。
          • less-loader:處理 less 代碼。
          • sass-loader: 處理 sass 代碼。
          • postcss-loader:用 postcss 來處理 CSS代碼。
          • babel-loader:用 babel 來轉換 ES6 文件到 ES5。
          • file-loader:打包圖片,打包字體圖標。
          • url-loader:和 file-loader 類似,但是當文件小于設定的 limit 時,可以返回一個 DataUrl(提升網頁性能)。
          • html-withimg-loader:打包 HTML 文件中的圖片。
          • eslint-loader:用于檢查常見的 JavaScript 代碼錯誤,也可以進行"代碼規范"檢查。

          loader的安裝和配置

          我們可以在 webpack.config.js 配置文件中配置 loader,可以在 module.rules 中指定一個或多個 loader

          通過配置loader 的兩個屬性來實現:

          • test 屬性:用來標識出應該被對應的 loader 進行轉換的某個或多個文件。
          • use 屬性:表示轉換時要用哪個 loader

          示例:

          例如默認情況下 webpack 只能打包 JS 文件,不能識別其他例如 CSS、Less、image等類型的文件,那么如果我們想要打包 CSS 樣式文件,可以在 webpack 中使用 loader 加載器,可以將一種文件轉換為另一種文件,將webpack不能識別的其它類型文件轉換為 webpack 可識別 JS 類型文件。

          首先需要安裝 style-loadercss-loader ,安裝命令如下所示:

          npm install css-loader style-loader --save-dev
          

          命令執行成功后,這兩個 loader 會自動添加到 package.json 的依賴中,如下所示:

          "devDependencies": {
              "css-loader": "^3.6.0",
              "style-loader": "^1.2.1",
              "webpack": "^4.43.0",
              "webpack-dev-server": "^3.11.0"
            }
          

          然后在 webpack.config.js 中配置 loader,在 module 屬性的 rule 屬性中配置 loader 規則:

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

          這里表示匹配所有 .css 后綴結尾的文件,通過 style-loadercss-loader 加載器進行轉換后再編譯。

          然后我們創建一個 xkd.css 文件,內容如下所示:

          p{
              font-size: 12px;
              color: red;
          }
          

          并將 xkd.css 文件導入到 index.js 入口文件中:

          document.write('你好,俠課島!');
          
          // 導入 CSS 文件
          import "./xkd.css";
          

          然后我們執行打包命令后會重新生成打包文件,會發現 xkd.css 文件也成功打包到 bundle.js 文件中。

          這就是 loader 的基本使用流程,先安裝loader,然后在配置文件中配置 loader ,最后再進行打包就可以啦。

          loader 特性

          • loader 支持鏈式調用,鏈中的每個 loader 會將轉換應用在已處理過的資源上。一組鏈式的 loader 將按照相反的順序執行。鏈中的第一個 loader 將其結果傳遞給下一個 loader,依此類推。
          • loader 可以是同步的,也可以是異步的。
          • loader 運行在 Node.js 中,并且能夠執行任何操作。
          • loader 也可以內聯顯示指定。
          • loader 可以通過 options 對象配置。
          • 除了常見的通過 package.jsonmain 來將一個 npm 模塊導出為 loader,還可以在 module.rules 中使用 loader 字段直接引用一個模塊。
          • 插件(plugin)可以為 loader 帶來更多特性。
          • loader 能夠產生額外的任意文件。

          的:因為傳統的link加載css樣式會發起二次請求,所以我們需要在webpack中使用loader加載css樣式

          準備:你需要準備一個已經配置好的webpack項目

          配置cssloader

          第一步:安裝相對應的插件 (cnpm i style-loader css-loader -D)

          如果出現警告說:需要依賴webpack就再安裝一下

          第二步:配置webpack.config.js

          配置less loader

          第一步:安裝插件(cnpm i less-loader less -D)

          第二步:配置

          配置sass loader

          第一步:安裝插件 (cnpm i sass-loader node-sass -D)

          第二步:配置

          測試

          mian.js

          index.css & index.scss

          index.html

          啟動項目

          結果:


          者: 秋天不落葉

          轉發鏈接:https://mp.weixin.qq.com/s/KmDLcJ0jhB667ZouDB8tyg


          主站蜘蛛池模板: 在线观看亚洲一区二区| 精品国产一区二区三区2021| 日本精品一区二区在线播放| 亚洲性日韩精品国产一区二区| 精品无码AV一区二区三区不卡| 精品成人av一区二区三区| 无码人妻av一区二区三区蜜臀| 亚洲一区二区三区高清视频| 中文字幕AV一区中文字幕天堂| 一区二区三区免费视频观看| 国模精品一区二区三区视频 | 无码一区二区三区爆白浆| 少妇特黄A一区二区三区| 国产午夜福利精品一区二区三区| 久久影院亚洲一区| 国产一区二区在线观看app| 亚洲一区二区三区国产精品| 亚洲国产成人久久一区WWW| chinese国产一区二区| 极品少妇伦理一区二区| 高清无码一区二区在线观看吞精| 日韩精品一区二区三区中文版| 精品日韩一区二区| | 不卡无码人妻一区三区音频| 波多野结衣中文一区二区免费| 在线精品一区二区三区电影| 国产精品久久久久一区二区| 午夜精品一区二区三区在线视| 午夜福利国产一区二区| 伊人色综合一区二区三区| 国产一区二区三区免费| 3d动漫精品啪啪一区二区中文| 亚洲一区二区三区亚瑟| 国产一区二区草草影院| 国产一区二区三区在线看片| 精品一区二区三区无码免费视频| 亚洲一区二区三区写真| 日本精品夜色视频一区二区| 国产一区二区内射最近更新| 精品人无码一区二区三区 |