<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      小小改動幫你減少bundle.js文件體積(翻譯)

      我已經從事過好多年的SPA開發工作,我發現很多的程序猿都從來不往 bundle.js 文件的體積上動腦筋,這讓我有點懵逼。

      “安心洗路,等俺把代碼混淆壓縮后就一切666了”,若是有人這么說,我會翻白眼。 

      其實當我們壓縮 bundle.js 的時候,我們可能會憑空折騰出一個龐大的應用,導致其加載時間抑或在移動端的連接時間變慢。那么問題就來了——我們是否有辦法給 bundle 顯著地瘦瘦身?

      其實一切都很簡單——使用相對文件路徑即可。我們來倆個示例看看它們的區別。

      示例1

      首先,我們使用ES6的解構賦值(destructuring assignment)來加載一些 lodash 模塊:

      # src/example.js
      
      import { concat, sortBy, map, sample } from 'lodash';
      
      // Example: sortBy
      const users = [  
        { 'user': 'fred',   'age': 48 },
        { 'user': 'barney', 'age': 36 },
        { 'user': 'fred',   'age': 42 },
        { 'user': 'barney', 'age': 34 }
      ];
      const exampleSortBy = sortBy(users, function(o) { return o.user; });  
      console.log(exampleSortBy);
      
      // Example: map
      const exampleMap = map(users, 'user');  
      console.log(exampleMap);
      
      // Example: concat
      const array = [1];  
      const exampleConcat = concat(array, 2, [3], [[4]]);  
      console.log(exampleConcat);
      
      // Example: sample
      const exampleSample = sample([1, 2, 3, 4]);  
      console.log(exampleSample);  

      接著咱用 browserify 來編譯和打包該應用:

      browserify src/example.js -o dist/bundle.js -t [ babelify --presets [ es2015 ] ] -v -d -g uglifyify  

      到目前為止感覺還不錯,我們來寫第二個示例,然后對比它們的文件大小~

      示例2

      我們來寫一個完全一樣的應用,不過這次我們將使用文件路徑來引入所需模塊,而非直接引入整個 lodash:

      # src/example-2.js
      
      import concat from 'lodash/concat';  
      import sortBy from 'lodash/sortBy';  
      import map from 'lodash/map';  
      import sample from 'lodash/sample';
      
      // Example: sortBy
      const users = [  
        { 'user': 'fred',   'age': 48 },
        { 'user': 'barney', 'age': 36 },
        { 'user': 'fred',   'age': 42 },
        { 'user': 'barney', 'age': 34 }
      ];
      const exampleSortBy = sortBy(users, function(o) { return o.user; });  
      console.log(exampleSortBy);
      
      // Example: map
      const exampleMap = map(users, 'user');  
      console.log(exampleMap);
      
      // Example: concat
      const array = [1];  
      const exampleConcat = concat(array, 2, [3], [[4]]);  
      console.log(exampleConcat);
      
      // Example: sample
      const exampleSample = sample([1, 2, 3, 4]);  
      console.log(exampleSample);  

      然后我們對其也進行編譯打包:

      browserify src/example-2.js -o dist/bundle-2.js -t [ babelify --presets [ es2015 ] ] -v -d -g uglifyify  

      問題來了—— 這兩個示例最終打包后的 bundle.js,哪一個文件更小呢?

      比較

      上述的倆個應用其實做了一樣的事情,它們幾乎寫的一模一樣的代碼。但當我面比較這倆個打包后的文件,你會發現示例2要明顯小得多

      $ ls -lha dist/
      bundle-2.js (84K)  
      bundle.js (204K)  

      原因其實在前面已經提到了——我們不再引入整個 lodash 模塊,而是只引入那些我們所指定需要的模塊。

      這個方法也能在幾乎全部的node模塊中奏效。簡單地把解構指派的 import 聲明形式替換為本地路徑的 import 聲明形式,就能顯而易見地減少文件體積。

      資源

      如果你想跑一跑本文的示例代碼,可以到下面的github倉庫獲得資源:

      https://github.com/tlackemann/minimize-bundle-js-size

       

      注:原文地址 https://lacke.mn/reduce-your-bundle-js-file-size/

      donate

      posted @ 2016-02-29 08:39  vajoy  閱讀(3951)  評論(1)    收藏  舉報
      Copyright © 2014 - 2022 VaJoy Studio
      主站蜘蛛池模板: 免费国产一级特黄aa大片在线| 色噜噜狠狠成人综合| 久久青青草原精品国产app| 国产99视频精品免费专区| 蜜芽久久人人超碰爱香蕉| 图片区 小说区 区 亚洲五月| 中文字幕人妻无码一夲道| 97无码人妻福利免费公开在线视频| 亚洲色成人一区二区三区人人澡人人妻人人爽人人蜜桃麻豆 | 国产黄色带三级在线观看| 人妻丝袜无码专区视频网站| 精品久久久久无码| 亚洲精品中文字幕一区二| 亚洲国产精品成人精品无码区在线| 国产自拍在线一区二区三区| 麻豆亚洲精品一区二区| 中文字幕人妻av第一区| 狠狠色综合久久狠狠色综合| 久久免费看少妇免费观看| 污污内射在线观看一区二区少妇| 日韩人妻无码精品专区综合网| 国产精品内射在线免费看| 精品综合久久久久久97| 成在线人免费视频| 亚洲精品日韩中文字幕| 在线视频精品中文无码| 国产av不卡一区二区| 精品中文人妻中文字幕| 国产精品中文字幕免费| 国产中文字幕精品喷潮| 东京热大乱系列无码| VA在线看国产免费| 亚洲高清国产拍精品网络战| 自拍视频亚洲精品在线| 欧美成人aaa片一区国产精品| 在线中文字幕国产精品| 国产无套粉嫩白浆在线| 欧美精品黑人粗大破除| 国产精品视频中文字幕| 麻豆国产va免费精品高清在线| 国产成人欧美综合在线影院 |