国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Vue使用CDN引用項目組件,減少項目體積的步驟

瀏覽:4日期:2022-11-08 10:53:45

Vue項目打包后有的文件動輒幾百KB或幾M,這對一個前端項目的加載無疑是致命的。當你的服務器部署在阿里云或亞馬遜,每秒只有100kb的加載速度時,頁面的載入速度絕對讓你崩潰。那么有什么辦法可以在依舊是100kb/s的加載速度下讓我們的頁面快起來呢?CDN算是其中之一的解決辦法。

首先,我們要明白為什么我的Vue項目在打包后產生的文件會那么大。我們在最開始使用Vue的時候幾乎所有組件、插件的引用都會放到項目主文件中進行即 main.js文件,我們的引用方式可能是這樣的:

import Vue from ’vue’import App from ’./App’import Router from ’vue-router’import ElementUI from ’element-ui’import axios from ’axios’import ’element-ui/lib/theme-chalk/index.css’import cookies from ’vue-cookies’import qs from ’qs’import store from ’./store’

項目在打包的時候就會去自動查找依賴,并將依賴文件全部打入到項目中去,正是這些依賴的文件的存在導致了整個項目文件的體積龐大了起來。但是依賴文件又是必須的,總不可能把依賴文件刪除了不是。CDN的出現就為上述情況提供了一種解決方案。

CDN全稱Content Delivery Network,即內容分發網絡。CDN是構建在現有網絡基礎之上的智能虛擬網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。

Vue中使用CDN就相當于是將原本自己項目所需要下載的依賴文件交由用戶的網絡進行下載,Vue中僅僅保持對依賴文件的引用即可。主要需要改動的有兩個地方一個是Vue的index.html,以及build目錄下的webpack.base.conf.js,廢話不多說,上代碼:

<!DOCTYPE html><html><head> <meta charset='utf-8'> <meta name='viewport' content='width=device-width,initial-scale=1.0'> <title>Demo index html</title> <link rel='stylesheet' rel='external nofollow' ></head><body><div id='app'></div><!-- built files will be auto injected --><script src='https://cdn.jsdelivr.net/npm/[email protected]'></script><script src='https://cdn.jsdelivr.net/npm/[email protected]'></script><script src='https://cdn.jsdelivr.net/npm/[email protected]'></script><script src='https://cdn.jsdelivr.net/npm/[email protected]/lib/index.js'></script></body></html>

所引用的資源文件Url分為幾部分:

第一部分:https://cdn.jsdelivr.net/npm 指定當前資源下載站點,與之類似的還有UNPKG、cdnjs.com、BootCDN等。個人比較推薦使用jsdelivr,速度比較穩定

第二部分:所要引用的包名,如:vue, vue-route, element-ui

第三部分:具體引用依賴的版本號或具體文件,如:@2.6.0,@2.12.0/lib/index.js 此部分為可選部分

css文件也可以使用cdn來進行引用

上述配置完成后,還需要修改build/webpack.base.conf.js文件:

’use strict’const path = require(’path’)const utils = require(’./utils’)const config = require(’../config’)const vueLoaderConfig = require(’./vue-loader.conf’)function resolve(dir) { return path.join(__dirname, ’..’, dir)}module.exports = { externals:{ ’vue’:’Vue’, ’element-ui’:’ELEMENT’, ’vue-router’:’VueRouter’, 'moment': 'moment', 'md5': 'js-md5' }, context: path.resolve(__dirname, ’../’), entry: { app: ’./src/main.js’ }, output: { path: config.build.assetsRoot, filename: ’[name].js’, publicPath: process.env.NODE_ENV === ’production’ ? config.build.assetsPublicPath : config.dev.assetsPublicPath },

如果沒有標注部分的代碼,請插入。在externals配置中,像Vue、ELEMENT、VueRouter這些都是固定寫法,webpack會根據這些字符自動查找相關依賴并引入

在修改完上述文件后,還需要修改main.js中關于這些文件的應用:

import Vue from 'vue';import App from './App';import router from 'VueRouter';import cookies from 'vue-cookies';import VueAxios from 'vue-axios';import axios from 'axios';//elementUI無需在引用,如需使用相關代碼請使用ELEMENT代替如:const Message = ELEMENT.Message;

至此配置全部完成,需要注意的是使用CDN之后,用戶在訪問你的頁面時都會去請求所配置的CDN文件,所以選擇一個速度快且穩定的CDN站點十分重要的;還有就是并不是所有的依賴文件都可使用此等方式引用,有些組件是不會導出對象的,也就意味著不能使用CDN來完成使用。

以上就是Vue使用CDN引用項目組件,減少項目體積的步驟的詳細內容,更多關于vue 減少項目體積的資料請關注好吧啦網其它相關文章!

標簽: Vue
主站蜘蛛池模板: 成人毛片免费观看视频大全 | 国产亚洲精| 在线不卡国产 | 欧美成人精品高清在线观看 | 色噜噜国产精品视频一区二区 | 亚洲加勒比久久88色综合一区 | 在线欧美不卡 | 国产自产在线 | 国产欧美另类性视频 | 深夜在线观看大尺度 | 日本久久久久一级毛片 | 亚洲二区在线播放 | 国产九九视频在线观看 | 亚洲女人被黑人猛躁进女人 | 亚洲一区二区成人 | 成人亚洲欧美日韩中文字幕 | 中国胖女人一级毛片aaaaa | 黄色大秀视频 | 成人性生免费视频 | 欧美性色生活免费观看 | 国产精品久久久久久亚洲伦理 | 中国一级特黄大片毛片 | 爱啪网亚洲第一福利网站 | 成人国产在线看不卡 | 亚洲精品视频在线观看视频 | 欧美特黄高清免费观看的 | 福利视频专区 | 国产一区二区免费在线观看 | 美国三级毛片 | 亚洲第一视频网站 | 精品国产综合成人亚洲区 | 欧美日韩一区二区在线 | 欧美一级毛片一级毛片 | 香蕉依依精品视频在线播放 | 寡妇野外啪啪一区二区 | 国产精品hd免费观看 | 欧美一级片在线观看 | 久久厕所精品国产精品亚洲 | 亚洲国产精| 国产舐足视频在线观看 | 日本色网址 |