电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

vue項目開啟Gzip壓縮和性能優化操作

瀏覽:6日期:2022-11-12 09:21:39

vue 項目開啟gzip自拍壓縮和部署 nginx 開啟gzip優化性能

第一步:在vue項目中安裝依賴并將productionGzip改為true,開啟Gzip壓縮:

npm install --save-dev compression-webpack-plugin

第二步:運行 npm run build打包項目,這時可能會報錯,提示ValidationError: Compression Plugin Invalid Options。

根據官網提示,需要將CompressionWebpackPlugin的設置由asset改為filename。

第三步:再次運行 npm run build打包項目,這時可能會繼續報錯,提示TypeError: Cannot read property ’emit’ of undefined。據我查證,是安裝的compression-webpack-plugin依賴有問題,需要卸載compression-webpack-plugin更改安裝低版本 v1.1.12。

第四步:卸載當前安裝的compression-webpack-plugin:

npm uninstall --save-dev compression-webpack-plugin

第五步:安裝低版本compression-webpack-plugin:

npm install --save-dev compression-webpack-plugin@1.1.2

第六步:再次運行 npm run build打包項目,這時將正常包vue項目,愉(ku)快(bi)的j將vue開發上線了。

第七步:開啟 nginx 服務端 gzip性能優化。找到nginx配置文件在 http 配置里面添加如下代碼,然后重啟nginx服務即可。

http:{ gzip on; gzip_static on; gzip_buffers 4 16k; gzip_comp_level 5; gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;}

注意:過程中可能出現的報錯:

throw new ValidationError(ajv.errors, name); ^ValidationError: Compression Plugin Invalid Optionsoptions should NOT have additional properties at validateOptions (E:workspacewebpack-stackanalyze-demonode_modulescompression-webpack-pluginnode_modulesschema-utilssrcvalidateOptions.js:32:11)

building for production...E:workspacewebpack-stackanalyze-demonode_modulescompression-webpack-plugindistindex.js:175 compiler.hooks.emit.tapAsync({ name: ’CompressionPlugin’ }, emit); TypeError: Cannot read property ’emit’ of undefined at CompressionPlugin.apply (E:workspacewebpack-stackanalyze-demonode_modulescompression-webpack-plugindistindex.js:175:20)

補充知識:vue填坑之webpack run build 靜態資源找不到

vue cli搭建的項目,在本地測試調試都OK,運行npm run dev之后運行正常,今天放到服務器上跑,結果RD說找不到打包后的靜態資源,瀏覽器控制臺錯誤代碼404

問了RD,因為服務器上線方式的調整,不會指定具體項目路徑因此,

https://bigdata.yiche.com/static/css/app.149f36018149fcbe537f02cafdc6f047.css

這個文件找不到,看看我們正常打包好的目錄:

vue項目開啟Gzip壓縮和性能優化操作

正確的訪問路徑是:

https://bigdata.yiche.com/deploy/static/css/app.149f36018149fcbe537f02cafdc6f047

config/index.js配置如圖:

vue項目開啟Gzip壓縮和性能優化操作

思來想去之前打包好的文件直接扔到nginx就可以使用,實在不清楚原因。于是找到我們的美女組長姐姐來幫忙,分分鐘改了config/index.js下的幾行代碼,如圖:

vue項目開啟Gzip壓縮和性能優化操作

這里需要注意assetsPublicPath:’/deploy/’ 末尾的斜杠一定要加,不然部分js打包后會出現

https://bigdata.yiche.com/deploystatic/css/app.149f36018149fcbe537f02cafdc6f047

這樣的情況。

看下打包好的目錄,對比之后會發現多了一層deploy目錄,這個多出來的路徑是index和assetsRoot這兩個設置決定的

vue項目開啟Gzip壓縮和性能優化操作

而assetsPublicPath則是確定打包后的文件引用路徑:看看打包后的index.html文件的js和css資源的引用路徑:

vue項目開啟Gzip壓縮和性能優化操作

對比之前默認配置的路徑:

vue項目開啟Gzip壓縮和性能優化操作

好了再放到服務器上,問題解決了。

問題總結:

原因是服務器沒有指定項目目錄,因此需要在打包時對打包文件添加訪問的項目名稱,所以在配置打包路徑是要加上項目名稱,下面是vue cli默認webpack config/index.js的配置解釋

var path = require(’path’) module.exports = { build: { // production 環境 env: require(’./prod.env’), // 使用 config/prod.env.js 中定義的編譯環境 index: path.resolve(__dirname, ’../dist/index.html’), // 編譯輸入的 index.html 文件 assetsRoot: path.resolve(__dirname, ’../dist’), // 編譯輸出的靜態資源路徑 assetsSubDirectory: ’static’, // 編譯輸出的二級目錄 assetsPublicPath: ’/’, // 編譯發布的根目錄,可配置為資源服務器域名或 CDN 域名 productionSourceMap: true, // 是否開啟 cssSourceMap // Gzip off by default as many popular static hosts such as // Surge or Netlify already gzip all static assets for you. // Before setting to `true`, make sure to: // npm install --save-dev compression-webpack-plugin productionGzip: false, // 是否開啟 gzip productionGzipExtensions: [’js’, ’css’] // 需要使用 gzip 壓縮的文件擴展名 }, dev: { // dev 環境 env: require(’./dev.env’), // 使用 config/dev.env.js 中定義的編譯環境 port: 8080, // 運行測試頁面的端口 assetsSubDirectory: ’static’, // 編譯輸出的二級目錄 assetsPublicPath: ’/’, // 編譯發布的根目錄,可配置為資源服務器域名或 CDN 域名 proxyTable: {}, // 需要 proxyTable 代理的接口(可跨域) // CSS Sourcemaps off by default because relative paths are 'buggy' // with this option, according to the CSS-Loader README // (https://github.com/webpack/css-loader#sourcemaps) // In our experience, they generally work as expected, // just be aware of this issue when enabling this option. cssSourceMap: false // 是否開啟 cssSourceMap } }

本人個人理解,如有不對歡迎指出!

以上這篇vue項目開啟Gzip壓縮和性能優化操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产 - 中工招商网 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 早报网 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 微波萃取合成仪-电热消解器价格-北京安合美诚科学仪器有限公司 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 手板_手板模型制作_cnc手板加工厂-东莞天泓 | 南京蜂窝纸箱_南京木托盘_南京纸托盘-南京博恒包装有限公司 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 清管器,管道清管器,聚氨酯发泡球,清管球 - 承德嘉拓设备 | 【连江县榕彩涂料有限公司】官方网站 | 广州市哲铭油墨涂料有限公司,水性漆生产研发基地 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 大数据营销公司_舆情监测软件_上海SEO公司-文军营销官网 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 |