国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

    <xmp id="skrxr">

    webpack打包優(yōu)化指南

    這篇具有很好參考價(jià)值的文章主要介紹了webpack打包優(yōu)化指南。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

    前言

    目前所有公司項(xiàng)目的代碼量都比較大,打包出來(lái)的文件會(huì)很大,甚至導(dǎo)致打包壓縮代碼時(shí)內(nèi)存不足,頁(yè)面加載速度也較慢。為了優(yōu)化加載速度,下面提供一些編碼指導(dǎo)建議:

    一、瀏覽器(chrome)運(yùn)行指標(biāo)

    1. 瀏覽器請(qǐng)求并發(fā)數(shù)量,chrome 請(qǐng)求并發(fā)數(shù)量為 6 個(gè)
    2. webpack 優(yōu)化目的是為了提高首屏加載速度,即保證用戶先看到整體頁(yè)面框架,減少白屏?xí)r間。

    二、優(yōu)化方式

    1、webpack打包

    webpack 打包時(shí)合理的拆分文件,可以配置自動(dòng)進(jìn)行了 文件切割 ,切割后文件最大不會(huì)超過(guò) 1MB。主要配置內(nèi)容如下:

    module.exports = {
      /** 其他wenpack配置 */
      optimization: {
        splitChunks: {
          chunks: 'all',
          name: false,
          minSize: 600 * 1024,
          maxSize: 1000 * 1024
        }
      }
    }
    
    2、 懶加載

    代碼中使用 懶加載 的方式加載文件。在 webpack4 中,動(dòng)態(tài)加載文件直接使用import('xxx')的方式即可。

    ? 在 react 項(xiàng)目中推薦在 路由層面 進(jìn)行懶加載
    import React, { Suspense, lazy } from 'react'
    import { HashRouter, Switch, Route } from 'react-router-dom'
    
    export default function App() {
      return (
        <HashRouter>
          <Suspense fallback={<div>Loading...</div>}>
            <Switch>
              <Route path="/" component={lazy(() => import('./routes/Home'))} exact />
              <Route path="/settings" component={lazy(() => import('./routes/Settings'))} exact />
              <Route component={lazy(() => import('./routes/404'))} />
            </Switch>
          </Suspense>
        </HashRouter>
      )
    }
    
    ? 如果某個(gè)組件代碼量非常大,也可在 組件層面 進(jìn)行懶加載
    import React, { Suspense } from 'react'
    
    const OtherComponent = React.lazy(() => import('./OtherComponent'))
    const AnotherComponent = React.lazy(() => import('./AnotherComponent'))
    
    const MyComponent = () => (
      <div>
        <Suspense fallback={<div>Loading...</div>}>
          <section>
            <OtherComponent />
            <AnotherComponent />
          </section>
        </Suspense>
      </div>
    )
    
    ? 動(dòng)態(tài)加載第三方庫(kù)
    import React from 'react'
    
    export default class SimpEditor extends React.Component {
      async componentDidMount() {
        // 由于simditor比較大,所以在組件掛在后再去加載
        // 加載過(guò)程中可添加相應(yīng)的加載動(dòng)畫(huà)
        const Simditor = await import(/* webpackChunkName: "simditor" */ 'simditor')
      }
    }
    
    3、 資源文件打包。

    資源文件包含圖片、視頻、音頻、字體等文件,在配置url-loader的時(shí)候一定要注意配置limit選項(xiàng)

    module.exports = {
      module: {
        rules: [
          {
            test: /\.(png|jpe?g|gif|webp)(\?.*)?$/,
            use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 8192 // 文件小于8k時(shí),會(huì)被編譯為base64,否則會(huì)以單獨(dú)的文件的形式
                }
              }
            ]
          }
        ]
      }
    }
    
    - base64 編碼

    通常會(huì)比原有文件大 33%左右,所以當(dāng)大文件編譯為 base64 時(shí),文件大小會(huì)變得非常大。小文件影響不大

    - 預(yù)加載

    提前加載未來(lái)要訪問(wèn)頁(yè)面的資源,在使用代碼切割的時(shí)候,我們可以使用預(yù)加載的方式加載后續(xù)要用到的資源。目前 Chrome, Firefox,IE11 都有一定的支持。everest-cli默認(rèn)支持 cssjsprefetch,不需要額外的配置

    <!-- prefetch使用方式 -->
    <link href="./static/js/chunk-b2e731ba.c6d62f25.js" rel="prefetch" />
    
    - 項(xiàng)目中的不需要的包,請(qǐng)務(wù)必移除

    在部分項(xiàng)目中,頁(yè)面中沒(méi)有使用到的包依然被保留下來(lái)了,導(dǎo)致打包后的文件非常大。

    - 使用everest-cli的項(xiàng)目,可以使用命令everest build -r來(lái)生成打包報(bào)告文件,在這個(gè)文件里面我們可以查看每個(gè)模塊打包后的大小。以針對(duì)性的優(yōu)化
    - 打包后應(yīng)盡量保證 html 中初始 js 個(gè)數(shù)不超過(guò) 6 個(gè),從而上瀏覽器能夠并行加載
    - babel 配置

    babel 配置時(shí)@babel/preset-envmodules字段,請(qǐng)盡量不要使用cjs,使用cjs時(shí),將不能支持動(dòng)態(tài)導(dǎo)入文件,導(dǎo)致頁(yè)面初始加載文件較大文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-564106.html

    三、優(yōu)化指導(dǎo):

    1. 在不能減少代碼總體文件的情況下,盡量 減少首屏加載 的文件,讓用戶盡快看到頁(yè)面,讓用戶在后續(xù)使用的時(shí)候漸進(jìn)的去加載文件
    2. 合理拆分文件,盡量保證文件大小相差不太大,拆分文件不宜太多,導(dǎo)致加載速度過(guò)慢
    3. 配合后端Nginx合理利用 靜態(tài)資源的強(qiáng)緩存 來(lái)加快訪問(wèn)效率

    到了這里,關(guān)于webpack打包優(yōu)化指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

    本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

    領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

    相關(guān)文章

    • 用webpack做一些前端打包時(shí)的性能優(yōu)化

      一.webpack 的五個(gè)核心概念 1.Entry:入口指示,webpack以哪個(gè)文件為入口起點(diǎn)開(kāi)始打包,分析構(gòu)建內(nèi)部依賴圖 2.output:輸出指示,webpack打包后的資源bundles輸出到哪里去,以及如何命名 3.loader :loader讓webpack能夠去處翻譯理那些非js文件(img css…) 4.Plugins :Plugins插件可以用于執(zhí)行范圍

      2024年02月12日
      瀏覽(19)
    • 一份Node.js性能優(yōu)化技巧指南

      一份Node.js性能優(yōu)化技巧指南

      你是一個(gè)踏入后端開(kāi)發(fā)領(lǐng)域的前端愛(ài)好者嗎??? 準(zhǔn)備好迎接在Node.js錯(cuò)綜復(fù)雜的景觀中驚險(xiǎn)刺激的旅程吧!?? 在這個(gè)探險(xiǎn)中,我們將探索后端的無(wú)數(shù)奇跡,從使用Node.js框架快速創(chuàng)建自己的后端,到應(yīng)對(duì)性能分析、測(cè)試,深入內(nèi)存管理。???? 加入我們,揭開(kāi)C++插件的奧秘,征服子進(jìn)程

      2024年02月21日
      瀏覽(17)
    • AJAX入門到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(七)

      AJAX入門到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(七)

      實(shí)操: server.js utils/lib/index.js utils/package.json 從別處(網(wǎng)上、其他人手中)拿到寫(xiě)好的項(xiàng)目,一般不攜帶node_modules文件夾(所占存儲(chǔ)空間大) 但有package.json文件,里面記載了當(dāng)前項(xiàng)目下載過(guò)的包 還有package-lock.json文件,固定軟件包的版本 導(dǎo)入模塊/包,除了自己創(chuàng)建的模塊、包

      2024年01月22日
      瀏覽(67)
    • 安全開(kāi)發(fā)-JS應(yīng)用&NodeJS指南&原型鏈污染&Express框架&功能實(shí)現(xiàn)&審計(jì)&WebPack打包器&第三方庫(kù)JQuery&安裝使用&安全檢測(cè)

      安全開(kāi)發(fā)-JS應(yīng)用&NodeJS指南&原型鏈污染&Express框架&功能實(shí)現(xiàn)&審計(jì)&WebPack打包器&第三方庫(kù)JQuery&安裝使用&安全檢測(cè)

      Node.js是運(yùn)行在服務(wù)端的JavaScript 文檔參考:https://www.w3cschool.cn/nodejs/ Nodejs安裝:https://nodejs.org/en 三方庫(kù)安裝 express:Express是一個(gè)簡(jiǎn)潔而靈活的node.js Web應(yīng)用框架 body-parser:node.js中間件,用于處理 JSON, Raw, Text和URL編碼的數(shù)據(jù)。 cookie-parser:這就是一個(gè)解析Cookie的工具。通過(guò)re

      2024年02月11日
      瀏覽(58)
    • AJAX入門到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(五)—— 項(xiàng)目-新聞?lì)^條-數(shù)據(jù)管理平臺(tái)-ajax綜合案例前端

      AJAX入門到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(五)—— 項(xiàng)目-新聞?lì)^條-數(shù)據(jù)管理平臺(tái)-ajax綜合案例前端

      愿許秋風(fēng)知我意,解我心中意難平。 推薦使用, 每個(gè)程序員都有自己的管理方式。 HTML結(jié)構(gòu): 1.為什么要提取公共前綴地址(基地址),因?yàn)楣緲I(yè)務(wù)可能會(huì)更換服務(wù)器,如果你不想一條一條地修改請(qǐng)求地址的話。 后續(xù)使用axios時(shí),url不需要再寫(xiě)前綴。 2.請(qǐng)求成功與失敗 成

      2024年01月25日
      瀏覽(24)
    • 前端10年進(jìn)化 Node.js、模塊化、CommonJS、AMD、CMD、Webpack、Vue-cli、Electron-vue

      模塊化的概念在軟件開(kāi)發(fā)領(lǐng)域已經(jīng)存在很長(zhǎng)時(shí)間,但在?JavaScript?中的模塊化發(fā)展相對(duì)較晚。以下是對(duì)您提出的問(wèn)題的回答: 提出時(shí)間:JavaScript?中的模塊化概念相對(duì)較早地提出于?CommonJS?規(guī)范。CommonJS?是一種?JavaScript?模塊化規(guī)范,最早在?2009?年由?Ryan?Dahl?和其他社區(qū)成

      2024年02月11日
      瀏覽(25)
    • webpack 打包優(yōu)化 - splitChunks

      webpack 打包優(yōu)化 - splitChunks

      打包時(shí)會(huì)遇到的問(wèn)題: 打包文件過(guò)大,首屏加載時(shí)間過(guò)長(zhǎng),js阻塞頁(yè)面渲染導(dǎo)致白屏 改動(dòng)業(yè)務(wù)代碼后,對(duì)于第三方庫(kù)也會(huì)一并重新打包到一個(gè)出口文件,瀏覽器無(wú)法利用緩存來(lái)減少請(qǐng)求和加載的時(shí)間 針對(duì)以上兩個(gè)問(wèn)題,利用splitChunks可以將各個(gè)模塊進(jìn)行分割,并提取出相同部

      2024年04月27日
      瀏覽(16)
    • webpack打包速度優(yōu)化思維導(dǎo)圖

      webpack打包速度優(yōu)化思維導(dǎo)圖

      去年的時(shí)候公司一個(gè)項(xiàng)目體積過(guò)大,我是m1芯片的macpro,光啟動(dòng)就要1分鐘,配置差點(diǎn)都電腦,啟動(dòng)就要3分鐘,自然打包速度也會(huì)慢很多,我們是gitlab設(shè)置成了自動(dòng)打包的,所以打包速度上需要優(yōu)化一下,否則太慢了。 之后是做了一個(gè)思維導(dǎo)圖,測(cè)試了市面上對(duì)于webpack的優(yōu)化

      2024年02月21日
      瀏覽(22)
    • 快速上手Webpack打包指南:用簡(jiǎn)單的步驟掌握Webpack的使用技巧

      快速上手Webpack打包指南:用簡(jiǎn)單的步驟掌握Webpack的使用技巧

      Webpack的打包過(guò)程可以總結(jié)為以下幾個(gè)步驟: 1.入口點(diǎn)配置:在Webpack的配置文件中,我們需要指定一個(gè)或多個(gè)入口點(diǎn)(entry points),這些入口點(diǎn)是我們應(yīng)用程序的起點(diǎn),Webpack會(huì)從這些入口點(diǎn)開(kāi)始分析和構(gòu)建依賴關(guān)系。 2.模塊解析:Webpack會(huì)根據(jù)入口點(diǎn)的依賴關(guān)系圖,遞歸地解析

      2024年02月15日
      瀏覽(31)
    • Webpack打包簡(jiǎn)單的js文件

      初始化一個(gè)新的npm 步驟一: 初始化npm項(xiàng)目,創(chuàng)建一個(gè)package.json文件 步驟二: 添加打包腳本:在 scripts 部分添加一個(gè)命令來(lái)運(yùn)行webpack 步驟三: 安裝Webpack 步驟四: 創(chuàng)建一個(gè)簡(jiǎn)單的Javascript文件,比如 src/index.js 步驟五: 配置Webpack,創(chuàng)建一個(gè)名為 webpack.config.js 的文件 步驟六

      2024年01月24日
      瀏覽(22)

    覺(jué)得文章有用就打賞一下文章作者

    支付寶掃一掃打賞

    博客贊助

    微信掃一掃打賞

    請(qǐng)作者喝杯咖啡吧~博客贊助

    支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

    二維碼1

    領(lǐng)取紅包

    二維碼2

    領(lǐng)紅包