Webpack框架知識整理——Loader

来源:https://www.cnblogs.com/volinVan/archive/2017/12/26/VV_ToWebpack_Loader.html
-Advertisement-
Play Games

對於webpack的loader相關主題的核心知識進行闡述整理 ...


4.Loader

  4.1 loader 用於對模塊的源代碼進行轉換,使你在 import 或"載入"模塊時預處理文件:

    1 可以將文件從不同的語言(如 TypeScript)轉換為 JavaScript語言;

    2 或將內聯圖像轉換為 data URL。

  因此,loader 可以說是向我們提供了處理前端構建步驟的強大方法。

  其次,使用 loader 之前需要先載入相對應的轉換器(即loader),然後 webpack 會根據配置載入可以處理的文件,比如遇到每個 .css時使用 css-loader,遇到所有 .ts 文件時使用 ts-loader

  4.2 loader 的使用方法大致有三種:  

    •   配置:在 webpack.config.js 文件中指定 loader,這是推薦使用的方法。
    •   內聯:在每個 import 語句中顯式指定 loader。如 import Styles from 'style-loader!css-loader?modules!./styles.css';中間的“!”是用於分隔開各個loader
    •   CLI:在 shell 命令中指定它們。如 webpack --module-bind jade-loader --module-bind 'css=style-loader!css-loader',這裡對 .jade 文件使用 jade-loader,對 .css 文件使用 style-loader 和 css-loader

  4.3 loader的特性

    • loader 能夠對資源使用流水線(pipeline)進行鏈式傳遞。即一組鏈式的 loader 的編譯順序是順序的,鏈中的前一個 loader 返回值給下一個 loader。傳遞到最後一個 loader時,返回 JavaScript。
    • loader 可以是同步/非同步的。
    • loader 運行在 Node.js 中,並且能夠執行任何可能的操作。
    • loader 接收用於對 loader 傳遞配置的查詢參數。
    • loader 能用 options 對象配置。
    • 可以使用 package.json 常見的 main 屬性,也可以在 package.json 里定義一個 loader 欄位來將普通的 npm 模塊導出為 loader。
    • 使用插件(plugin)可以為loader帶來更多特性。
    • loader 可以產生非標準配置文件的任意文件。

    (loader)預處理函數為 JavaScript 生態系統提供了更多可能和變化。用戶可以更加靈活地引入細粒度邏輯,如壓縮、打包、語言翻譯等。

  4.4 loader的解析  

    遵循標準的模塊解析,loader 將從模塊路徑(通常認為模塊路徑是 npm installnode_modules)解析。

    loader 模塊需要導出為一個函數,並且使用 Node.js 相容的 JavaScript 編寫。通常使用 npm 進行管理,也可將自定義 loader 作為應用程式中的文件。

    命名約定:loader 被命名為 xxx-loader(例如 json-loader)。

    更多信息請看如何編寫 loader?


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 先設置網頁的大屏幕的寬高,以及點擊事件: 1 <div style="width : 2000px,height : 2000px" onmousedown = "ww()"> <div id = "ex" style = "width :100px,height:30px "></div> </d ...
  • 問題描述: 最近用jstree遇到一個問題,使用CheckBox插件時,當父節點選中時,被禁用的子節點也會選中如下 解決方案: 1、 將jstree升級到最新的版本,v3.3.4及以上就可以 2、 修改checkbox插件配置,將cascade_to_disabled設置為false(註:需要將配置 ...
  • 前面已經說過當頁面被架子到瀏覽後,所有的節點(元素)都會被封裝成一個個對象。通過操作這些對象,使得HTML頁面呈現動的狀態。下麵就看看可以對這些對象進行說明操作,怎麼操作。 對dom節點的操作分為:獲取節點(定位),創建新的節點,修改節點,刪除節點。我們通俗稱(增刪改查),在適當的實際執行這些操作, ...
  • var test = "Class01"; function Class01(privateValue, publicValue) { var _this = this; if (this.constructor.name !== 'Class01') { throw new Error('類只能被 ...
  • 定位和居中問題|百度前端學院 .content{ width: 400px; height: 200px; background-color: #ccc; margin: 200px auto; position: ... ...
  • 三欄式佈局 團隊logo 團隊logo 團隊logo ... ...
  • 零基礎HTML及CSS編程(一) 導航鏈接四 導航鏈接三 導航鏈接二 導航鏈接一 網站一級標... ...
  • react使用redux做狀態管理,實現多個組件之間的信息共用,解決了父子組件、兄弟組件之間的複雜通信問題。vue有vuex,總之是一種flux的思想。react提供了react redux這個庫,一看名字就知道是為了將react和redux關聯起來,react redux有connect高階函數以 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...