整合營銷服務商

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

          免費咨詢熱線:

          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


          主站蜘蛛池模板: 亚洲Aⅴ无码一区二区二三区软件| 日韩国产一区二区| 无码毛片一区二区三区视频免费播放| 亚洲欧洲一区二区三区| 无码中文人妻在线一区二区三区| 女人和拘做受全程看视频日本综合a一区二区视频 | 国产精品美女一区二区| 亚洲日韩一区二区一无码| 伊人色综合一区二区三区 | 国产福利电影一区二区三区| 亚洲av乱码一区二区三区按摩 | 丰满人妻一区二区三区免费视频 | 亚洲综合在线成人一区| 久久中文字幕一区二区| 中文字幕在线一区二区三区| 国产福利一区二区在线视频| 波多野结衣在线观看一区二区三区| 国产成人久久精品区一区二区| 国产午夜福利精品一区二区三区| 国产成人无码AV一区二区| 中文字幕日韩一区二区三区不| 国产精品一区二区香蕉| 制服美女视频一区| 一区二区三区电影在线观看| 国产精品视频免费一区二区三区| 福利片福利一区二区三区| 日本精品少妇一区二区三区| 日韩A无码AV一区二区三区| 亚洲日本一区二区三区在线不卡| 国产综合一区二区在线观看| 熟妇人妻系列av无码一区二区| 亚洲一区精品无码| 91在线精品亚洲一区二区| 午夜影院一区二区| 欧洲亚洲综合一区二区三区| 日韩社区一区二区三区| 538国产精品一区二区在线| 亚洲一区免费观看| 在线观看一区二区三区视频| 国产麻豆剧果冻传媒一区| 国产另类ts人妖一区二区三区|