<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        淺析webpack 如何優雅的使用tree-shaking(搖樹優化)

        來源:懂視網 責編:小采 時間:2020-11-27 22:32:31
        文檔

        淺析webpack 如何優雅的使用tree-shaking(搖樹優化)

        淺析webpack 如何優雅的使用tree-shaking(搖樹優化):1.什么是tree-shaking webpack 2 的到來帶來的最棒的新特性之一就是tree-shaking 。tree-shaking源自于rollup.js,先如今,webpack 2也有類似的做法。 webpack 里的tree-shaking的到來不得不歸功于es6規范的模塊。為什么這么說,如今的前端模塊規范
        推薦度:
        導讀淺析webpack 如何優雅的使用tree-shaking(搖樹優化):1.什么是tree-shaking webpack 2 的到來帶來的最棒的新特性之一就是tree-shaking 。tree-shaking源自于rollup.js,先如今,webpack 2也有類似的做法。 webpack 里的tree-shaking的到來不得不歸功于es6規范的模塊。為什么這么說,如今的前端模塊規范

        1.什么是tree-shaking

        webpack 2 的到來帶來的最棒的新特性之一就是tree-shaking 。tree-shaking源自于rollup.js,先如今,webpack 2也有類似的做法。

        webpack 里的tree-shaking的到來不得不歸功于es6規范的模塊。為什么這么說,如今的前端模塊規范很多,比較出流行的比如commonJS , AMD , es6 ,我簡單的說一下commonJS和es6模塊的區別。

        commonJS 模塊

        commonJS的模塊規范在Node中發揚光大,總的來說,它的特性有這幾個:

        1.動態加載模塊

        commonJS和es6的最大區別大概就在于此了吧,commonJS模塊的動態加載能夠很輕松的實現懶加載,優化用戶體驗。

        2.加載整個模塊

        commonJS模塊中,導出的是整個模塊。

        3.每個模塊皆為對象

        commonJS模塊都被視作一個對象。

        4.值拷貝

        commonJS的模塊輸出和 函數的值傳遞相似,都是值的拷貝

        es6 模塊

        1.靜態解析

        即在解析階段就確定輸出的模塊,所以es6模塊的import一般寫在被引入文件的開頭。

        2.模塊不是對象

        在es6里,每個模塊并不會當做一個對象看待

        3.加載的不是整個模塊

        在es6模塊中經常會看見一個模塊中有好幾個export 導出

        4.模塊的引用

        es6模塊中,導出的并不是模塊的值拷貝,而是這個模塊的引用

        在結合es6模塊和commonJS模塊的區別之后,我們知道es6的特點是靜態解析,而commonJS模塊的特點是動態解析的,因此,借于es6模塊的靜態解析,tree-shaking的實現才能成為可能。
        在webpack中,tree-shaking指的就是按需加載,即沒有被引用的模塊不會被打包進來,減少我們的包大小,縮小應用的加載時間,呈現給用戶更佳的體驗。

        2.怎么使用tree-shaking

        說了這么多那到底如何使用tree-shaking呢?
        webpack默認es6規范編寫的模塊都能使用tree-shaking。這是什么意思呢?下面來看個例子。

        首先奉上我的demo目錄如下:

        ├─dist
            └─index.html
        ├─node_modules
            └─...
        ├─src
            ├─scripts
            ├─assets
        ├─webpack.config.js
        └─package.json

        dist用來存放打包好的代碼

        src相反的用來存放源文件

        src里的scripts目錄用來存放js腳本文件,assets用來存放靜態資源文件

        以下幾條命令過后開始我們的tree-shaking之旅

        npm install --save-dev webpack webpack-dev-server
        webpack.config.js
        const webpack = require('webpack')
        const path = require('path')
        module.exports = {
         entry:'./src/scripts/main.js',
         output:{
         path:path.resolve(__dirname,'dist/'),
         filename:'main.bundle.js'
         },
         plugins:[
         new webpack.HotModuleReplacementPlugin()
         ],
         devServer:{
         port:4200,
         contentBase:path.resolve(__dirname,'dist/'),
         historyApiFallback:true,
         hot:true
         }
        }
        
        

        接下來是main.js,直接引入了sayHello

        import { sayHello } from './greeter.ts';

        sayHello();

        相應的main.js的依賴greeter.js

        export function sayHello(){
         alert('hello')
        }
        export function sayWorld(){
         alert('world')
        }

        在dist目錄下有個index.html 用來引入打包后的bundle

        <!DOCTYPE html>
        <html lang="en">
        <head>
         <meta charset="UTF-8">
         <title>Document</title>
        </head>
        <body>
         <script type="text/javascript" src="./main.bundle.js"></script>
        </body>
        </html>

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        淺析webpack 如何優雅的使用tree-shaking(搖樹優化)

        淺析webpack 如何優雅的使用tree-shaking(搖樹優化):1.什么是tree-shaking webpack 2 的到來帶來的最棒的新特性之一就是tree-shaking 。tree-shaking源自于rollup.js,先如今,webpack 2也有類似的做法。 webpack 里的tree-shaking的到來不得不歸功于es6規范的模塊。為什么這么說,如今的前端模塊規范
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 特a级免费高清黄色片| 日日摸日日碰夜夜爽亚洲| 亚洲国产精品无码中文字| 图图资源网亚洲综合网站| 亚洲AV成人无码天堂| 亚洲AV无码之国产精品| 成年女人A毛片免费视频| 又大又硬又爽又粗又快的视频免费| 在线精品免费视频| 国产成人亚洲综合无码精品| 国产免费无码一区二区| 国产精品极品美女免费观看| 亚洲首页在线观看| 四虎影视久久久免费| 亚洲中文字幕丝袜制服一区| 日韩亚洲产在线观看| 免费的全黄一级录像带| 337p日本欧洲亚洲大胆色噜噜| 人成午夜免费视频在线观看| 国产精品亚洲A∨天堂不卡| 婷婷亚洲综合一区二区| 亚洲精品人成无码中文毛片| 亚洲人成人伊人成综合网无码| 国内精品免费视频精选在线观看| 亚洲一区二区电影| 黄网站免费在线观看| 亚洲最大黄色网站| **aaaaa毛片免费| 激情婷婷成人亚洲综合| 亚洲色自偷自拍另类小说| 日本精品久久久久久久久免费| 午夜视频免费观看| 9久久免费国产精品特黄| 国产一级理论免费版| 亚洲欧美一区二区三区日产| 中文字幕亚洲电影| 一级午夜免费视频| 亚洲精品天堂成人片?V在线播放| 性无码免费一区二区三区在线| 精品国产人成亚洲区| 无码国产精品一区二区免费式直播 |