簡(jiǎn)述vue項(xiàng)目的前端優(yōu)化和ios8 ios9等低版本兼容性問題

新公司是做自己的獨(dú)立產(chǎn)品,比之前呆過的外包公司要求嚴(yán)格的多,注重用戶體驗(yàn),以下是在新項(xiàng)目里進(jìn)行前端優(yōu)化的一些操作

一,低版本空白屏問題,以及ios8的樣式問題

本項(xiàng)目是通過vue-cli搭建,上線以后運(yùn)行在新版本的蘋果手機(jī)和安卓手機(jī)上均無問題。但是在ios8 9上出現(xiàn)了空白屏的原理,經(jīng)過測(cè)試以后發(fā)現(xiàn)是低版本不兼容es6的語法,經(jīng)過幾番嘗試找到了最優(yōu)解。

1 空白屏問題

首先安裝babel-polyfill,安裝命令:npm install --save-dev babel-polyfill?

安裝成功后找到webpack.base.conf里把第16行的代碼換成第17行的寫法,如圖1所示


圖1

相同的頁(yè)面,加入紅色方框里的代碼,如圖2所示

{

? ? ? ? test: /\.js$/,

? ? ? ? exclude: /node_modules/,

? ? ? ? loader: "babel-loader"

? ? ? },

圖2

2 樣式問題

找到webpack.prod.conf文件,將注釋代碼替換成紅色方框內(nèi)的代碼即可,如圖3


圖3

二? 打包之后的文件以及生成的vendor文件過大的問題

1打包文件過大的問題

找到config底下的index.js文件,在69行的代碼productionSourceMap:true,將true改為false。不然在最終打包的文件中會(huì)出現(xiàn)一些map文件,map文件的作用在于:項(xiàng)目打包后,代碼都是經(jīng)過壓縮加密的,如果運(yùn)行時(shí)報(bào)錯(cuò),輸出的錯(cuò)誤信息無法準(zhǔn)確得知是哪里的代碼報(bào)錯(cuò)。有了map就可以像未加密的代碼一樣,準(zhǔn)確的輸出是哪一行哪一列有錯(cuò)。但是這里為了瘦身大業(yè),可以舍去。

2生成的vendor文件過大的問題

vendor文件里會(huì)將項(xiàng)目中vue? vue-router? mint-ui element-ui等庫(kù)和框架一起打包壓縮,這樣必定會(huì)占用空間,造成壓縮包過大。通常都有好幾百k至少超過1M,在加載頁(yè)面的時(shí)候會(huì)極度耗時(shí)。

這里建議使用cdn 然后在build里找到webpack.base.conf,加入平常不改動(dòng)的庫(kù),如圖4所示,然后在入口頁(yè)面index.html導(dǎo)入相應(yīng)的cdn


圖4

同時(shí)要在項(xiàng)目里把諸如圖5這樣的導(dǎo)入都去除,否則打包的時(shí)候依然會(huì)占用空間,我項(xiàng)目里這樣優(yōu)化之后,vendor大小由239k優(yōu)化到10k,減小的20倍


圖5

三 壓縮圖片 ,推薦一個(gè)壓縮圖片的工具 https://tinypng.com/? 如果有更改好的工具可以留言告知~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容