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

WebPack入門教學詳解

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

這次帶給大家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
JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

了解JavaScript引擎:實施詳細信息了解JavaScript引擎:實施詳細信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python vs. JavaScript:學習曲線和易用性Python vs. JavaScript:學習曲線和易用性Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python vs. JavaScript:社區,圖書館和資源Python vs. JavaScript:社區,圖書館和資源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C到JavaScript:所有工作方式從C/C到JavaScript:所有工作方式Apr 14, 2025 am 12:05 AM

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1

記事本++7.3.1

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版