欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WebPack基礎知識詳解

 更新時間:2017年01月16日 16:32:36   作者:九成  
本文主要介紹了WebPack的基礎知識,具有一定的參考價值,下面跟著小編一起來看下吧

1、什么是Webpack

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

2、為什要使用WebPack

今的很多網頁其實可以看做是功能豐富的應用,它們擁有著復雜的JavaScript代碼和一大堆依賴包。為了簡化開發(fā)的復雜度,前端社區(qū)涌現出了很多好的實踐方法

a:模塊化,讓我們可以把復雜的程序細化為小的文件;

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

c:scss,less等CSS預處理器

.........

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

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

其實Webpack和另外兩個并沒有太多的可比性,Gulp/Grunt是一種能夠優(yōu)化前端的開發(fā)流程的工具,而WebPack是一種模塊化的解決方案,不過Webpack的優(yōu)點使得Webpack可以替代Gulp/Grunt類的工具。

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

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

優(yōu)點:模塊化

在webpack看來一切都是模塊!這就是它不可不說的優(yōu)點,包括你的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通過一些新的語言特性,更好的工具以及更好的實踐方法(比如說模塊化)發(fā)展得非常迅速。模塊使得開發(fā)者把復雜的代碼轉化為小的,干凈的,依賴聲明明確的單元,且基于優(yōu)化工具,依賴管理和加載管理可以自動完成。

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

最近有一個叫做 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-pulgins

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

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

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

1、如何使用插件?

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

該插件的作用是依據一個簡單的模板,幫你生成最終的Html5文件,這個文件中自動引用了你打包后的JS文件。每次編譯都在文件名中插入一個不同的哈希值。

//安裝

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

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • 深入理解js 中async 函數的含義和用法

    深入理解js 中async 函數的含義和用法

    async 函數就是隧道盡頭的亮光,很多人認為它是異步操作的終極解決方案。接下來通過本文給大家分享js 中async 函數的含義和用法,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-05-05
  • JS實現固定在右下角可展開收縮DIV層的方法

    JS實現固定在右下角可展開收縮DIV層的方法

    這篇文章主要介紹了JS實現固定在右下角可展開收縮DIV層的方法,右下角的div層可實現收縮與展開的功能,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • JavaScript引擎實現async/await的方法實例

    JavaScript引擎實現async/await的方法實例

    大家應該都知道隨著Node 7的發(fā)布,越來越多的人開始研究據說是異步編程終級解決方案的async/await,下面這篇文章主要給大家介紹了關于JavaScript引擎是如何實現async/await的相關資料,需要的朋友可以參考下
    2022-03-03
  • js實現下載(文件流式)方法詳解與完整實例源碼

    js實現下載(文件流式)方法詳解與完整實例源碼

    這篇文章主要介紹了js實現下載(文件流式)的方法,需要的朋友可以參考下
    2022-12-12
  • d3.js實現圖形縮放平移

    d3.js實現圖形縮放平移

    這篇文章主要為大家詳細介紹了d3.js實現圖形縮放平移效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • JavaScript實現的類字典插入或更新方法實例

    JavaScript實現的類字典插入或更新方法實例

    這篇文章主要介紹了JavaScript實現的類字典插入或更新方法,實例分析了javascript針對類字典的插入與更新技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 微信小程序商品詳情頁底部彈出框

    微信小程序商品詳情頁底部彈出框

    這篇文章主要為大家詳細介紹了微信小程序商品詳情頁底部彈出框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • JS函數報錯Uncaught ReferenceError: XX is not defined問題及解決

    JS函數報錯Uncaught ReferenceError: XX is not

    這篇文章主要介紹了JS函數報錯Uncaught ReferenceError: XX is not defined問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • JavaScript中檢測數組的3種方法小結

    JavaScript中檢測數組的3種方法小結

    數組檢測是指在編程中對數組進行驗證和檢查的過程,本文主要介紹了JavaScript中檢測數組的3種方法小結,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 利用JS制作萬年歷的方法

    利用JS制作萬年歷的方法

    本篇文章主要介紹了利用JS制作萬年歷的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論