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

性能優(yōu)化之--- 項(xiàng)目打包優(yōu)化(vue)

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

項(xiàng)目體積小也是優(yōu)化性能的一個(gè)方向,這里以Vue工程為例;

一、路由懶加載

1.為什么需要路由懶加載

當(dāng)剛運(yùn)行項(xiàng)目的時(shí)候,發(fā)現(xiàn)剛進(jìn)入頁(yè)面,就將所有的js文件和css文件加載了進(jìn)來(lái),這一進(jìn)程十分的消耗時(shí)間。 如果打開哪個(gè)頁(yè)面就對(duì)應(yīng)的加載響應(yīng)頁(yè)面的js文件和css文件,那么頁(yè)面加載速度會(huì)大大提升。

2. 如何實(shí)現(xiàn)路由懶加載

vue官方文檔說(shuō)明的非常詳細(xì),路由懶加載,代碼如下:

//示例
{
    path: '/login',
    component: () => import('@/views/login/index'),
    hidden: true
  },

3. 路由懶加載中的魔法注釋

通過(guò)在注釋中指定webpackChunkName,可以自定義這個(gè)文件的名字。 代碼如下:

//示例
components = () => import(/* webpackChunkName:"login"*/ "../component/Login.vue")

二、分析包大小

1. 需求

想要知道打包生成的文件中,每個(gè)文件所占的空間大小。以便于我們分析,對(duì)代碼進(jìn)行優(yōu)化處理。

2. 如何生成打包分析文件

我們可以使用 vue-cli 本身提供的性能分析工具,對(duì)我們開發(fā)的所有功能進(jìn)行打包分析;
在vscode終端中運(yùn)行 npm run preview -- --report, 這個(gè)命令會(huì)從我們的入口main.js進(jìn)行依賴分析,分析出各個(gè)包的大小。最終會(huì)在生成的dist文件夾下生成一個(gè)report.html的文件,打開后就可以看到我們?cè)陧?xiàng)目使用文件占據(jù)的空間大小啦~

三、webpack配置排除打包

1. 需求

將一些不常用的包,排除在生成的打包文件以外。 例如:上圖所示的xsxl.js 、 element.js,可以將其排除在打包生成的文件以外

2. 排除打包

找到 vue.config.js, 添加 externals 項(xiàng),具體如下:

configureWebpack: {
  name: name,
  externals: {
    'vue': 'Vue',
    'element-ui': 'ElementUI',
    'xlsx': 'XLSX'
  },
  resolve: {
    alias: {
      '@': resolve('src')
    }
  }
}

四、 引用網(wǎng)絡(luò)資源

1. 需求

我們進(jìn)行了上一步操作以后,打包生成后的包小了很多。但是呢,沒有這些依賴包的話,項(xiàng)目上線是沒有辦法運(yùn)行的。那么就需要引用網(wǎng)絡(luò)中的資源,來(lái)支持我們代碼的運(yùn)行。

2. CDN

CDN全稱叫做“Content Delivery Network”,中文叫內(nèi)容分發(fā)網(wǎng)絡(luò)。我們用它來(lái)提高訪問(wèn)速度
把一些靜態(tài)資源:css, .js,圖片,視頻放在第三方的CDN服務(wù)器上,可以加速訪問(wèn)速度。
好處:
減少應(yīng)用打包出來(lái)的包體積
加快靜態(tài)資源的訪問(wèn)
利用瀏覽器緩存,不會(huì)變動(dòng)的文件長(zhǎng)期緩存

3. 實(shí)現(xiàn)步驟

在開發(fā)環(huán)境時(shí),文件資源還是可以從本地node_modules中取出,而只有項(xiàng)目上線了,才需要去使用外部資源。此時(shí)我們可以使用環(huán)境變量來(lái)進(jìn)行區(qū)分。具體如下:
在vue.config.js文件中:

let externals = {}
let cdn = { css: [], js: [] }
const isProduction = process.env.NODE_ENV === 'production' // 判斷是否是生產(chǎn)環(huán)境
if (isProduction) {
  externals = {
      'vue': 'Vue',
      'element-ui': 'ELEMENT',
      'xlsx': 'XLSX'
  }
  cdn = {
    css: [
      'https://unpkg.com/element-ui/lib/theme-chalk/index.css' // element-ui css 樣式表
    ],
    js: [
      // vue must at first!
      'https://unpkg.com/vue@2.6.12/dist/vue.js', // vuejs
      'https://unpkg.com/element-ui/lib/index.js', // element-ui js
      'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/xlsx.full.min.js', // xlsx
    ]
  }
}

webpack配置externals配置項(xiàng)

configureWebpack: {
  // 配置單頁(yè)應(yīng)用程序的頁(yè)面的標(biāo)題
  name: name,
  externals: externals,
  resolve: {
    alias: {
      '@': resolve('src')
    }
  }
}

通過(guò) html-webpack-plugin注入到 index.html之中: 在vue.config.js文件中配置:

chainWebpack(config) {
  config.plugin('preload').tap(() => [
    {
      rel: 'preload',
      fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
      include: 'initial'
    }
  ])
  // 注入cdn變量 (打包時(shí)會(huì)執(zhí)行)
  config.plugin('html').tap(args => {
    args[0].cdn = cdn // 配置cdn給插件
    return args
  })
  // 省略其他...
}

找到 public/index.html 通過(guò)配置CDN Config 依次注入 css 和 js。 修改head的內(nèi)容如下:

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= webpackConfig.name %></title>

      <!-- 引入樣式 -->
      <% for(var css of htmlWebpackPlugin.options.cdn.css) { %>
        <link rel="stylesheet" href="<%=css%>">
        <% } %>


    <!-- 引入JS -->
    <% for(var js of htmlWebpackPlugin.options.cdn.js) { %>
      <script src="<%=js%>"></script>
    <% } %>
  </head>

五、 打包去除console.log

1. 需求

在項(xiàng)目打包上線后,去除掉代碼中所有的console.log

2. 代碼演示

vue.config.js文件中配置: 代碼如下(示例):

chainWebpack(config) {
    config.optimization.minimizer('terser').tap((args) => {
      args[0].terserOptions.compress.drop_console = true
      return args
    })
}

(來(lái)源網(wǎng)絡(luò),侵權(quán)聯(lián)系立馬刪)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-490125.html

到了這里,關(guān)于性能優(yōu)化之--- 項(xiàng)目打包優(yōu)化(vue)的文章就介紹完了。如果您還想了解更多內(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)文章

  • vue項(xiàng)目打包優(yōu)化:縮小體積productionSourceMap設(shè)置,使用cdn加速

    一、vue項(xiàng)目打包體積大優(yōu)化之productionSourceMap設(shè)置 1、productionSourceMap 的作用 productionSourceMap 在構(gòu)建時(shí)生成完整的 SourceMap 文件,默認(rèn)情況下開啟。生產(chǎn)環(huán)境中啟用 productionSourceMap 有助于開發(fā)者調(diào)試代碼,可以在瀏覽器的調(diào)試工具中查看到源文件中錯(cuò)誤的代碼位置,而不是編譯后

    2024年02月21日
    瀏覽(25)
  • 【vite+vue3.2 項(xiàng)目性能優(yōu)化實(shí)戰(zhàn)】使用vite-plugin-cdn-import進(jìn)行CDN加速優(yōu)化項(xiàng)目體積

    【vite+vue3.2 項(xiàng)目性能優(yōu)化實(shí)戰(zhàn)】使用vite-plugin-cdn-import進(jìn)行CDN加速優(yōu)化項(xiàng)目體積

    CDN (Content Delivery Network)即內(nèi)容分發(fā)網(wǎng)絡(luò),是一種通過(guò)在全球范圍內(nèi)分布式部署服務(wù)器來(lái)加速網(wǎng)絡(luò)內(nèi)容傳輸?shù)募夹g(shù)。CDN加速的原理是,當(dāng)用戶請(qǐng)求訪問(wèn)某個(gè)資源時(shí), CDN會(huì)根據(jù)用戶的地理位置和網(wǎng)絡(luò)狀況,自動(dòng)選擇離用戶最近的服務(wù)器來(lái)響應(yīng)請(qǐng)求 。如果該服務(wù)器上已經(jīng)緩存了

    2024年02月03日
    瀏覽(96)
  • Webpack項(xiàng)目學(xué)習(xí):Vue-cli(腳手架)-優(yōu)化配置 -ui庫(kù)element-plus+減小打包體積 -按需加載+自定義主題+優(yōu)化

    Webpack項(xiàng)目學(xué)習(xí):Vue-cli(腳手架)-優(yōu)化配置 -ui庫(kù)element-plus+減小打包體積 -按需加載+自定義主題+優(yōu)化

    安裝 全部引入,在入口文件main.js ?啟動(dòng):npm start ?按需引入 需要插件快速開始 | Element Plus (gitee.io) ? ? 更改默認(rèn)配置 主題 | Element Plus (gitee.io) ? ?如果有模塊沒有安裝 ,安裝一下即可 優(yōu)化 關(guān)閉性能分析 文件單獨(dú)打包 做緩存-

    2024年02月08日
    瀏覽(99)
  • 性能優(yōu)化之--- 項(xiàng)目打包優(yōu)化(vue)

    項(xiàng)目體積小也是優(yōu)化性能的一個(gè)方向,這里以 Vue 工程為例; 當(dāng)剛運(yùn)行項(xiàng)目的時(shí)候,發(fā)現(xiàn)剛進(jìn)入頁(yè)面,就將所有的js文件和css文件加載了進(jìn)來(lái),這一進(jìn)程十分的消耗時(shí)間。 如果打開哪個(gè)頁(yè)面就對(duì)應(yīng)的加載響應(yīng)頁(yè)面的js文件和css文件,那么頁(yè)面加載速度會(huì)大大提升。 vue官方文檔

    2024年02月09日
    瀏覽(16)
  • 前端項(xiàng)目?jī)?yōu)化:減少webpack打包體積

    前端項(xiàng)目?jī)?yōu)化:減少webpack打包體積

    最近自己買個(gè)云服務(wù)器,把之前搭建的webpack-vue項(xiàng)目進(jìn)行了部署,現(xiàn)在項(xiàng)目已經(jīng)成功了。 項(xiàng)目地址:GitHub - wjt162286793/webpack----vue: 使用webpack配置一個(gè)腳手架,對(duì)照文檔,純手打 ?線上地址:IAM架構(gòu)資產(chǎn)管理系統(tǒng) 不過(guò)是沒有經(jīng)過(guò)任何優(yōu)化的,雖然項(xiàng)目體積和業(yè)務(wù)不是很復(fù)雜,但是實(shí)際上打

    2024年01月21日
    瀏覽(25)
  • 前端性能優(yōu)化——包體積壓縮插件,打包速度提升插件,提升瀏覽器響應(yīng)的速率模式

    前端性能優(yōu)化——包體積壓縮插件,打包速度提升插件,提升瀏覽器響應(yīng)的速率模式

    –其他的優(yōu)化可以具體在網(wǎng)上搜索 壓縮項(xiàng)目打包后的體積大小、提升打包速度,是前端性能優(yōu)化中非常重要的環(huán)節(jié),結(jié)合工作中的實(shí)踐總結(jié),梳理出一些 常規(guī)且有效 的性能優(yōu)化建議 ue 項(xiàng)目可以通過(guò)添加–report命令: \\\"build\\\": \\\"vue-cli-service build --report\\\" ,打包后 dist 目錄會(huì)生成

    2024年02月12日
    瀏覽(24)
  • webpack/vue-cli構(gòu)建速度和打包體積優(yōu)化

    webpack/vue-cli構(gòu)建速度和打包體積優(yōu)化

    webpack-bundle-analyzer 可以生成代碼分析報(bào)告,可以直觀地分析打包出的文件有哪些,及它們的大小、占比情況、各文件 Gzipped 后的大小、模塊包含關(guān)系、依賴項(xiàng)等 npm i -D webpackbar webpack-bundle-analyzer javascript 復(fù)制代碼 const { BundleAnalyzerPlugin } = require(\\\'webpack-bundle-analyzer\\\'); ? module.e

    2024年01月19日
    瀏覽(97)
  • vite+vue3+ts搭建項(xiàng)目八(打包性能優(yōu)化三:使用CDN)

    vite+vue3+ts搭建項(xiàng)目八(打包性能優(yōu)化三:使用CDN)

    使用vite-plugin-cdn-import 下載npm包 官方github:https://github.com/MMF-FE/vite-plugin-cdn-import 開發(fā)環(huán)境使用本地的npm包,cdn是打包時(shí)候才生效 在vite.config.ts中通過(guò)importToCDN引入 注意事項(xiàng) :網(wǎng)上很多教程,還需要在 build 的 rollupOptions 添加對(duì)應(yīng)的 external ,如上注釋所示,其實(shí)是不需要的,

    2024年02月02日
    瀏覽(97)
  • vite配置cdn優(yōu)化打包體積

    vite配置cdn優(yōu)化打包體積

    大家都知道前端性能優(yōu)化的方法,cdn外部引入的方法可以使項(xiàng)目打包后體積大大縮小,所以是前端性能優(yōu)化方面非常推薦的方法之一。 本文關(guān)于 vite2 vue3 + Ts 項(xiàng)目如何cdn引入 element plus 做一個(gè)簡(jiǎn)單教程,我們可以通過(guò)兩種方式引入配置cdn。 由于 vite 的核心基于 rollup 和 webpac

    2024年02月05日
    瀏覽(25)
  • nginx開啟Gzip壓縮,Vue性能優(yōu)化之使用gzip壓縮打包

    nginx開啟Gzip壓縮,Vue性能優(yōu)化之使用gzip壓縮打包

    不管是vue項(xiàng)目還是react項(xiàng)目在使用webpack打包之后都會(huì)生成一個(gè)動(dòng)輒一兩兆甚至更大的js文件,在某些情況下嚴(yán)重影響項(xiàng)目性能,打開頁(yè)面的時(shí)候白屏?xí)r間會(huì)很長(zhǎng),本文將介紹如何使用gzip壓縮打包,主要是nginx部署的配置,非常重要,我查閱了很多文章基本都沒用說(shuō)清楚甚至錯(cuò)

    2024年02月02日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包