亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

了解Webpack嗎?

Cympros / 2919人閱讀

摘要:你了解嗎核心概念的核心概念大致分為四個入口出口插件,是一個打包模塊化的工具,專注構(gòu)建模塊化項(xiàng)目。優(yōu)點(diǎn)只更新變更內(nèi)容,以節(jié)省寶貴的開發(fā)時間。在構(gòu)建過程中,將引用的靜態(tài)資源路徑修改為上對應(yīng)的路徑??梢酝ㄟ^在啟動時追加參數(shù)來實(shí)現(xiàn)提取公共代碼。

你了解Webpack嗎? 核心概念

Webpack的核心概念大致分為四個:入口、出口、loader、插件,是一個打包模塊化js的工具,專注構(gòu)建模塊化項(xiàng)目。

是一個模塊打包器,強(qiáng)調(diào)模塊化方案

打包的原理

把所有的依賴打包成一個bundle.js,然后通過代碼分割單元片段并按需加載

1、入口
module.exports = {
    entry: "./src",  //單入口
    // or
    entry: [
        "./src", //多入口
        "/src2",
    ],
    // or
    entry: {
        main: "./src", //對象寫法的單入口簡寫
    }
    //or
    entry: {
        app: "./src/index.js", //對象寫法的第三方庫寫法
        vendors: "./src/script/moment.js"
    }
    // or
    entry: {
        page1: "./src/page1.js",
        page2: "./src/page2.js",
        page3: "./src/page3.js",
    }
    
}

其實(shí)入口很簡單

2、出口 output
module.exports = {
    /*
    output接受對象屬性,參數(shù)為
    filename: 打包后的文件名
    path: 打包后所需導(dǎo)出的路徑
    */
    output: {
        filename: "index.js",
        path: path.resolve(__dirname, "/dist")
    }
    // or 多入口
    entry: {
        app: "./src/index.js", 
        vendors: "./src/script/moment.js"
    },
    output: {
        filename: "[name].js",
        path: __dirname + "dist"
    }
}
3、Loader 加載器 主要用于源代碼進(jìn)行轉(zhuǎn)換

用于記載某些資源文件,因?yàn)楸旧碇荒艽虬點(diǎn)ommon.js規(guī)范的js文件,對于其他資源如css,img等,是沒有辦法加載的,這時就需要對應(yīng)的loader將資源轉(zhuǎn)化,從而進(jìn)行喜歡轉(zhuǎn)化

4、插件 plugin

用于擴(kuò)展webpack 的功能,不同于loader,plugin的功能更加的豐富比如壓縮,優(yōu)化,不只局限于資源的餓加載

常見的插件和常見的loader
plugin:
html-webpack-plugin 打包結(jié)束后,在dist目錄中自動生成一個html文件,并把打包生成的js自動引入到這個html文件中
clean-webpack-plugin 刪除打包文件
webapck-dev-server 實(shí)現(xiàn)自動打包編譯功能(將dist文件托管到內(nèi)存中),并開啟熱更新功能
uglifyjs-webpack-plugin:通過UglifyES壓縮ES6代碼

loader:
css-loader 加載 CSS,支持模塊化、壓縮、文件導(dǎo)入等特性
style-loader 把 CSS 代碼注入到 JavaScript 中,通過 DOM 操作去加載 CSS
url-loader:在文件很小的情況下以 base64 的方式把文件內(nèi)容注入到代碼中去
babel-loader 把 ES6 轉(zhuǎn)換成 ES5
source-map-loader 加載額外的 Source Map 文件,以方便斷點(diǎn)調(diào)試
eslint-loader:通過 ESLint 檢查 JavaScript 代碼
關(guān)于熱更新

定義:模塊熱更新是webpack的一個功能,它可以使得代碼修改之后,不用刷新瀏覽器就可以更新。

優(yōu)點(diǎn):只更新變更內(nèi)容,以節(jié)省寶貴的開發(fā)時間。調(diào)整樣式更加快速,幾乎相當(dāng)于在瀏覽器中更改樣式

webpack與grunt、gulp的不同

grunt、gulp早期比較流行、一些輕量化的任務(wù)還是會用gulp來處理的,對其做系列的鏈?zhǔn)讲僮?、更新流的?shù)據(jù)、構(gòu)成了一個任務(wù)、

webpack基于入口的,webpack會自動的遞歸,然后用不同的loader來處理不同的文件,用plugin來擴(kuò)展功能

類似的工具、談?wù)勀阕罱K的選擇使用webpack

webpack 用于大型的前端站點(diǎn)

rollup適用于基礎(chǔ)庫的打包、如Vue、react

parcel適用于實(shí)驗(yàn)性項(xiàng)目

構(gòu)建的流程、從讀取的輸出文件這個過程盡量說全

1、初始化參數(shù)、

2、開始編譯、

3、確定編譯

4、完成模塊編譯

5、完成模塊的編譯

6、輸出資源

7、輸出完成

是否自己loader和plugin描述一下思路

將源文件一步步翻譯成想要的樣子、編寫Loader只做一種“轉(zhuǎn)義”,每個Loder拿到是源文件內(nèi)容、可以通過返回值的方式將處理后的內(nèi)容輸入,相對于loader而言,plugin的編寫

利用webpack來進(jìn)行前端的優(yōu)化

壓縮代碼。刪除多余的代碼、注釋、簡化代碼的寫法等等方式??梢岳脀ebpack的UglifyJsPluginParallelUglifyPlugin來壓縮JS文件, 利用cssnano(css-loader?minimize)來壓縮css

利用CDN加速。在構(gòu)建過程中,將引用的靜態(tài)資源路徑修改為CDN上對應(yīng)的路徑??梢岳脀ebpack對于output參數(shù)和各loader的publicPath參數(shù)來修改資源路徑

刪除死代碼(Tree Shaking)。將代碼中永遠(yuǎn)不會走到的片段刪除掉??梢酝ㄟ^在啟動webpack時追加參數(shù)--optimize-minimize來實(shí)現(xiàn)

提取公共代碼。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/105318.html

相關(guān)文章

  • 前端面試題大集合:來自真實(shí)大廠的532道面試題(只有題,沒有答案)

    答案自己谷歌或百度找。 一、來源背景 面試題是來自微博@牛客網(wǎng)發(fā)布的真實(shí)大廠前端面經(jīng)題目,我一直在收集題目長期一個一個的記錄下來的,可能會有重復(fù),但基本前端的面試大綱和需要掌握的知識都在其中了,面試題僅做學(xué)習(xí)參考,學(xué)習(xí)者閱后也要用心鉆研其中的原理,重要知識需要系統(tǒng)學(xué)習(xí)、透徹學(xué)習(xí),形成自己的知識鏈。 二、532道前端真實(shí)大廠面試題 express和koa的對比,兩者中間件的原理,koa捕獲異常多種情...

    Kerr1Gan 評論0 收藏0
  • 前端面試題大集合:來自真實(shí)大廠的532道面試題(只有題,沒有答案)

    答案自己谷歌或百度找。 一、來源背景 面試題是來自微博@牛客網(wǎng)發(fā)布的真實(shí)大廠前端面經(jīng)題目,我一直在收集題目長期一個一個的記錄下來的,可能會有重復(fù),但基本前端的面試大綱和需要掌握的知識都在其中了,面試題僅做學(xué)習(xí)參考,學(xué)習(xí)者閱后也要用心鉆研其中的原理,重要知識需要系統(tǒng)學(xué)習(xí)、透徹學(xué)習(xí),形成自己的知識鏈。 二、532道前端真實(shí)大廠面試題 express和koa的對比,兩者中間件的原理,koa捕獲異常多種情...

    lushan 評論0 收藏0
  • 前端面試題大集合:來自真實(shí)大廠的532道面試題(只有題,沒有答案)

    答案自己谷歌或百度找。 一、來源背景 面試題是來自微博@??途W(wǎng)發(fā)布的真實(shí)大廠前端面經(jīng)題目,我一直在收集題目長期一個一個的記錄下來的,可能會有重復(fù),但基本前端的面試大綱和需要掌握的知識都在其中了,面試題僅做學(xué)習(xí)參考,學(xué)習(xí)者閱后也要用心鉆研其中的原理,重要知識需要系統(tǒng)學(xué)習(xí)、透徹學(xué)習(xí),形成自己的知識鏈。 二、532道前端真實(shí)大廠面試題 express和koa的對比,兩者中間件的原理,koa捕獲異常多種情...

    joyvw 評論0 收藏0
  • 2019前端秋季社招面試經(jīng)歷總結(jié)(三年經(jīng)驗(yàn))

    摘要:經(jīng)歷月份開放的簡歷,收到了蠻多詢問和面試,算是招人旺季,需要跳槽的小伙伴抓住機(jī)會?,F(xiàn)在是面試了家公司左右,有些高頻問題會標(biāo)記次數(shù)總次數(shù),可供大家參考。最后祝大家面試順利,拿到心儀的,寫錯的地方請不吝賜教,謝謝。 經(jīng)歷 7月份開放的簡歷,收到了蠻多詢問和面試,算是招人旺季,需要跳槽的小伙伴抓住機(jī)會。一開始廣泛看面試題,沒抓住重點(diǎn)復(fù)習(xí),有很多平時也沒怎么用到,導(dǎo)致一開始面試的時候,問的問題...

    Kross 評論0 收藏0
  • 記錄一下自己的春招,唯品會、360、京東offer已收、騰訊offer_call已達(dá)?。?!

    摘要:春招結(jié)果五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌?,所以簡單地記錄一下自己的春招過程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品會電商前端研發(fā)部大數(shù)據(jù)與威脅分析事業(yè)部京東精銳暑假實(shí)習(xí)生的騰訊的是早上打過來的。 春招結(jié)果 五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌?,所以簡單地記錄一下自己的春招過程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品...

    freewolf 評論0 收藏1

發(fā)表評論

0條評論

Cympros

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<