<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
        主站蜘蛛池模板: 91人人区免费区人人| 久久免费观看视频| 午夜国产精品免费观看| 337p日本欧洲亚洲大胆艺术| 67pao强力打造国产免费| 亚洲视频在线观看| 69式互添免费视频| 亚洲人成图片网站| 国产国产人免费视频成69大陆| 久久精品熟女亚洲av麻豆| 亚洲av日韩片在线观看| 精品无码一级毛片免费视频观看 | 中文字幕乱码免费看电影| 亚洲熟妇丰满多毛XXXX| 国产成人AV片无码免费| 亚洲精品日韩中文字幕久久久| 国产成人精品免费视频网页大全 | 亚洲国产av一区二区三区丶| 欧亚精品一区三区免费| 国产成人高清亚洲一区久久| 亚洲综合区小说区激情区| 野花香在线视频免费观看大全| 亚洲理论片中文字幕电影| 热久久精品免费视频| 国产精品成人啪精品视频免费| 亚洲综合精品香蕉久久网97| 国产精品久久久久久久久久免费| 色噜噜噜噜亚洲第一| 国产亚洲av片在线观看16女人 | 亚洲精品你懂的在线观看| 久久天天躁狠狠躁夜夜免费观看| 久久亚洲精品11p| 亚洲国产精品久久久久| 黄a大片av永久免费| 中文字幕手机在线免费看电影 | 精品成人免费自拍视频| 亚洲一区二区三区国产精华液| 亚洲国产一成久久精品国产成人综合| 久久99毛片免费观看不卡| 亚洲精品无码久久久久YW| 亚洲国产日韩一区高清在线|