首頁 web前端 js教程 WebPack入門教學詳解

WebPack入門教學詳解

Apr 18, 2018 pm 04:52 PM
web webpack 入門教學

這次帶給大家WebPack入門教學詳解,WebPack入門使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

1、什麼是Webpack

WebPack可以看做是模組打包機:它所做的事情是,分析你的專案結構,找到JavaScript模組以及其它的一些瀏覽器不能直接運行的拓展語言(Scss,TypeScript等),並將其打包為合適的格式以供瀏覽器使用。

2、為什要使用WebPack

現今的網頁其實可以看做是功能豐富的應用,它們擁有複雜的JavaScript程式碼和一大堆依賴套件。為了簡化開發的複雜度,前端社群湧現了許多好的實踐方法

a:模組化,讓我們可以把複雜的程式細化為小的檔案;

# b:類似於TypeScript這種在JavaScript基礎上拓展的開發語言:使我們能夠實現目前版本的JavaScript不能直接使用的特性,並且之後還能裝換為JavaScript文件使瀏覽器可以識別;

c:scss,less等CSS預處理器

# ................

這些改進確實大大的提高了我們的開發效率,但是利用它們開發的文件往往需要進行額外的處理才能讓瀏覽器識別,而手動處理又是非常反鎖的,這就為WebPack類的工具的出現提供了需求。

3、WebPack和Grunt以及Gulp相比有什麼特性

其實Webpack和另外兩個並沒有太多的可比性,Gulp/Grunt是一種能夠優化前端的開發流程的工具,而WebPack是一種模組化的解決方案,不過Webpack的優點使得Webpack可以取代Gulp/ Grunt類別的工具。

Grunt和Gulp的工作方式是:在一個設定檔中,指明對某些檔案進行類似編譯,組合,壓縮等任務的具體步驟,這個工具之後可以自動替你完成這些任務。

Webpack的工作方式是:把你的專案當做一個整體,透過一個給定的主文件(如:index.js),Webpack將從這個文件開始找到你的專案的所有依賴文件,使用loaders處理它們,最後打包為一個瀏覽器可識別的JavaScript檔案。

優點:模組化

# 在webpack看來一切都是模組!這就是它不可不說的優點,包括你的JavaScript程式碼,也包括CSS和fonts以及圖片等等等,只有透過適當的loaders,它們都可以被當作模組處理。

1、CSS

# webpack提供兩個工具處理樣式表,css-loader 和 style-loader,二者處理的任務不同,css-loader使你能夠使用類似@import 和 url(...)的方法實現 require()的功能,style-loader將所有的計算後的樣式加入頁面中,二者組合在一起使你能夠把樣式表嵌入webpack打包後的JS檔案中。

需要分別安裝:npm install --save-dev style-loader css-loader

2、CSS modules

在過去的一些年裡,JavaScript透過一些新的語言特性,更好的工具以及更好的實踐方法(比如說模組化)發展得非常迅速。模組使得開發者把複雜的程式碼轉化為小的,乾淨的,依賴聲明明確的單元,且基於最佳化工具,依賴管理和載入管理可以自動完成

不過前端的另外一部分,CSS發展相對慢一些,大多的樣式表卻依舊是巨大且充滿了全局類名,這使得維護和修改都非常困難和複雜。

最近有一個叫做 CSS modules 的技術就意在把JS的模組化想法帶入CSS中來,透過CSS模組,所有的類別名,動畫名預設都只作用於當前模組。 Webpack從一開始就對CSS模組化提供了支持,在CSS loader中進行設定後,你所需要做的一切就是把」modules「傳遞都所需要的地方,然後就可以直接把CSS的類別名稱傳遞到元件的程式碼中,且這樣做只對當前元件有效,不必擔心在不同的模組中具有相同的類別名稱可能會造成的問題。

這樣相同的類別名稱也不會互相污染

# 3、CSS預編譯

Sass 和 Less之類的預處理器是對原生CSS的拓展,它們允許你使用類似於variables, nesting, mixins, inheritance等不存在於CSS中的特性來寫CSS,CSS預處理器可以這些特殊類型的語句轉換為瀏覽器可辨識的CSS語句,

你現在可能都已經熟悉了,在webpack裡使用相關loaders進行設定就可以使用了,以下是常用的CSS 處理loaders

a:less-loader

b:sass-loader

c:stylus-loader

# 還有一個CSS處理平台-PostCSS,可以讓你用CSS事先更多功能,例如如何使用PostCSS,我們使用PostCSS來為CSS代碼自動添加適應不同瀏覽器的CSS前綴。

首先安裝postcss-loader 和 autoprefixer(自動加入前綴的外掛程式)

npm install --save-dev postcss-loader autoprefixer

# 並在webpack設定檔中進行設置,只需要新建一個postcss關鍵字,並在裡面申明依賴的插件,如下,現在你寫的css會自動根據Can i use裡的資料添加不同前綴了。

# WebPack入門教學詳解

# 二、webpack-pulgins

插件(Plugins)是用來拓展Webpack功能的,它們會在整個建置過程中生效,執行相關的任務。

Loaders和Plugins常常被弄混,但是他們其實是完全不同的東西,可以這麼來說,loaders是在打包構建過程中用來處理源文件的(JSX,Scss,Less..),一次處理一個,插件並不直接操作單一文件,它直接對整個建置過程其作用。

Webpack有很多內建插件,同時也有很多第三方插件,可以讓我們完成更豐富的功能。

1、如何使用外掛?

# 要使用某個插件,我們需要透過npm安裝它,然後要做的就是在webpack配置中的plugins關鍵字部分添加該插件的一個實例(plugins是一個陣列),我們添加了一個實現版權聲明的插件。如HtmlWebpackPugin插件,

# 該插件的作用是依據一個簡單的模板,幫你產生最終的Html5文件,這個文件中自動引用了你打包後的JS文件。每次編譯都在檔案名稱中插入一個不同的雜湊值。

//安裝

npm install --save-dev html-webpack-pugin

#相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

js寄生組合式繼承使用詳解

#JS實作棋盤覆蓋

js原型物件所使用的步奏詳解

以上是WebPack入門教學詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VUE3入門教學:使用Webpack進行打包和構建 VUE3入門教學:使用Webpack進行打包和構建 Jun 15, 2023 pm 06:17 PM

Vue是一款優秀的JavaScript框架,它可以幫助我們快速建立互動性強、高效性好的Web應用程式。 Vue3是Vue的最新版本,它引入了許多新的功能和功能。 Webpack是目前最受歡迎的JavaScript模組打包器和建置工具之一,它可以幫助我們管理專案中的各種資源。本文就為大家介紹如何使用Webpack打包和建構Vue3應用程式。 1.安裝Webpack

PHP實作框架:CakePHP入門教程 PHP實作框架:CakePHP入門教程 Jun 18, 2023 am 09:04 AM

隨著網路技術的不斷發展,Web開發技術也不斷更新迭代。 PHP作為一種開源的程式語言,在Web開發中擁有廣泛的應用。而PHP框架作為PHP開發常用的工具之一,能夠提升開發效率與程式碼品質。本文將為大家介紹一個PHP框架-CakePHP,並提供一些簡單入門的教學。一、什麼是CakePHP? CakePHP是一個基於MVC(Model-View-Control

初學者指南:從零開始,逐步學習MyBatis 初學者指南:從零開始,逐步學習MyBatis Feb 19, 2024 am 11:05 AM

簡明易懂的MyBatis入門教學:一步一步來寫你的第一個程式MyBatis是一種流行的Java持久層框架,它簡化了與資料庫互動的過程。本教學將為您介紹如何使用MyBatis建立和執行簡單的資料庫操作。第一步:環境建置首先,確保您的Java開發環境已經安裝好。然後,下載MyBatis的最新版本,並將其新增至您的Java專案。您可以從MyBatis的官方網站下

如何使用Golang實作網頁應用程式的表單驗證 如何使用Golang實作網頁應用程式的表單驗證 Jun 24, 2023 am 09:08 AM

表單驗證是Web應用程式開發中非常重要的環節,它能夠在提交表單資料之前對資料進行有效性檢查,避免應用程式出現安全漏洞和資料錯誤。使用Golang可以輕鬆實現網頁應用程式的表單驗證,本文將介紹如何使用Golang來實作網頁應用程式的表單驗證。一、表單驗證的基本要素在介紹如何實作表單驗證之前,我們需要知道表單驗證的基本要素是什麼。表單元素:表單元素是指

Java API 開發中使用 Jetty7 進行 Web 伺服器處理 Java API 開發中使用 Jetty7 進行 Web 伺服器處理 Jun 18, 2023 am 10:42 AM

JavaAPI開發中使用Jetty7進行Web伺服器處理隨著互聯網的發展,Web伺服器已經成為了應用程式開發的核心部分,同時也是許多企業所關注的焦點。為了滿足日益增長的業務需求,許多開發人員選擇使用Jetty進行Web伺服器開發,其靈活性和可擴展性受到了廣泛的認可。本文將介紹如何在JavaAPI開發中使用Jetty7進行We

PHP實作框架:Lumen框架入門教程 PHP實作框架:Lumen框架入門教程 Jun 18, 2023 am 08:39 AM

Lumen是Laravel框架開發者開發的基於PHP的微框架,它的設計初衷是為了快速建構小型的API應用和微服務,同時保留了Laravel框架的部分組件和特性。 Lumen框架輕量級、快速、易上手,因此受到了廣泛的關注與使用。在本篇文章中,我們將快速入門Lumen框架,學習如何使用Lumen框架建立簡單的API應用。框架準備在學習Lumen框架之前,我們需

web標準是什麼東西 web標準是什麼東西 Oct 18, 2023 pm 05:24 PM

Web標準是一組由W3C和其他相關組織制定的規範和指南,它包括HTML、CSS、JavaScript、DOM、Web可訪問性和性能優化等方面的標準化,透過遵循這些標準,可以提高頁面的兼容性、可訪問性、可維護性和效能。 Web標準的目標是使Web內容能夠在不同的平台、瀏覽器和裝置上一致地展示和交互,提供更好的使用者體驗和開發效率。

如何從駕駛艙Web使用者介面啟用管理訪問 如何從駕駛艙Web使用者介面啟用管理訪問 Mar 20, 2024 pm 06:56 PM

Cockpit是一個面向Linux伺服器的基於Web的圖形介面。它主要是為了使新用戶/專家用戶更容易管理Linux伺服器。在本文中,我們將討論Cockpit存取模式以及如何從CockpitWebUI切換Cockpit的管理存取。內容主題:駕駛艙進入模式查找當前駕駛艙訪問模式從CockpitWebUI啟用Cockpit的管理訪問從CockpitWebUI禁用Cockpit的管理訪問結論駕駛艙進入模式駕駛艙有兩種訪問模式:受限訪問:這是駕駛艙的默認訪問模式。在這種存取模式下,您無法從駕駛艙Web用戶

See all articles