日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue优化策略_项目发布_01

發布時間:2024/9/27 vue 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue优化策略_项目发布_01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、移除console 策略
    • 1. 命令
      • 1.1. 插件官網:
      • 1.2. 安裝babel-plugin-transform-remove-console
      • 1.3. 在babel.config.js或者.babelrc文件中配置
    • 2. 圖形化(推薦使用)
      • 2.1. 在線圖形化安裝插件
      • 2.2. 在babel.config.js或者.babelrc文件中配置
  • 二、生成打包報告
    • 1. 通過命令參數的形式生成報告
      • 1.1. 插件安裝
      • 1.2. 分析生成的report.html
    • 2. 可視化UI面板直接查看報告(推薦使用)
      • 2.1. 啟動ui界面
      • 2.2. ui界面總覽
  • 三、打包配置個性化
    • 1. webpack配置項簡述
    • 2. 為開發環境和發布環境指定不同打包入口
      • 2.1. 開發環境入口文件src/main-dev.js
      • 2.2. 開發環境入口文件src/main-prod.js
      • 2.3. 自定義webpack打包配置
      • 2.4. 通過chainwebpack自定義打包入口
  • 四、資源加載優化
    • 1. 具體參考配置
    • 2. 指定CDN引用
    • 3. 通過CDN優化ElementUI的打包
      • 3.1. 操作流程
  • 五、首頁內容定制
    • 1. 插件配置1
    • 2. 插件配置2
  • 六、路由異步+懶加載
    • 1. 命令安裝
    • 2. 圖形化安裝(推薦使用)
    • 3. 配置插件
    • 4. 組件引入方式修改
    • 5. 把組件按組分塊

一、移除console 策略

在企業內部:
在dev開發環境中需要有console,為了方便開發人員測試。
在發布環境中,卻不能出現console調用的方法。

1. 命令

1.1. 插件官網:

https://www.npmjs.com/package/babel-plugin-transform-remove-console

1.2. 安裝babel-plugin-transform-remove-console

npm install babel-plugin-transform-remove-console --save-dev

1.3. 在babel.config.js或者.babelrc文件中配置

配置參數:

{"plugins": ["transform-remove-console"] }

企業內部完整配置(推薦使用):
由于這個文件屬于全局的配置文件,因此,這里對打包環境做了判斷,此配置只在發布或者上線環境中啟動

// 項目發布階段用到的插件 const prodPlugins = [] if (process.env.NODE_ENV === 'productio') {prodPlugins.push('transform-remove-console') }module.exports = {presets: ['@vue/cli-plugin-babel/preset'],plugins: [['component',{libraryName: 'element-ui',styleLibraryName: 'theme-chalk'}],// 發布產品用到的插件數組...prodPlugins,] }

官網截圖:

2. 圖形化(推薦使用)

2.1. 在線圖形化安裝插件

【依賴】-【添加依賴】-【開發依賴】搜索【babel-plugin-transform-remove-console】-【安裝】

2.2. 在babel.config.js或者.babelrc文件中配置

企業內部完整配置(推薦使用):
由于這個文件屬于全局的配置文件,因此,這里對打包環境做了判斷,此配置只在發布或者上線環境中啟動

// 項目發布階段用到的插件 const prodPlugins = [] if (process.env.NODE_ENV === 'productio') {prodPlugins.push('transform-remove-console') }module.exports = {presets: ['@vue/cli-plugin-babel/preset'],plugins: [['component',{libraryName: 'element-ui',styleLibraryName: 'theme-chalk'}],// 發布產品用到的插件數組...prodPlugins,] }

二、生成打包報告

打包時,為了直觀的發現項目中存在的問題,可以在打包時生成報告,通過報告分析項目中存在的問題。

1. 通過命令參數的形式生成報告

1.1. 插件安裝

#通過vue-cli的命令選項可以生成打包報告 #--report選項可以生成report.html 以此來幫助分析打包內容 vue-cli-service build --report

1.2. 分析生成的report.html

2. 可視化UI面板直接查看報告(推薦使用)

在可視化的UI面板中,通過控制臺和分析面板,可以方便的清晰直觀多角度看到項目中存在的問題。

2.1. 啟動ui界面

vue ui

2.2. ui界面總覽


三、打包配置個性化

1. webpack配置項簡述

通過vue-cli 3.0 工具生成的項目,默認隱藏了所有的webpack的配置項,目的是為了屏蔽項目的配置過程,讓程序員吧工作的重心,放到具體功能和業務邏輯的實現上。

若有需要修改webpack默認配置需求,可以再項目目錄中,按需創建vue.config.js這個配置文件,從而對項目的打包發布過程中作者自定義的配置(具體配置參考:https://cli.vuejs.org/zh/config/#vue_config.js)

// vue.config.js //在這個配置文件中,自定義配置選項的對象 module.exports = { //選項 }

2. 為開發環境和發布環境指定不同打包入口

默認情況下,Vue項目的開發模式與發布模式,公用一個打包的入口文件(即src/main.js),為了將項目的開發過程分離,我們可以分為2種模式,為開發環境和發布環境指定不同的入口文件。

2.1. 開發環境入口文件src/main-dev.js

2.2. 開發環境入口文件src/main-prod.js

2.3. 自定義webpack打包配置

在vue.config.js導出的配置對象中,新增configureWebpack或chainWebpack節點,來自定義webpack的打包配置。

configure和chainWebpack的作用相同,唯一的區別就是他們修改了webpack配置的方式:
①chainWebpack通過鏈式編程的形式,來修改默認的webpack配置
②configureWebpack通過操作對象的形式來修改默認webpack配置

二者具體差異:https://cli.vuejs.org/zh/guide/webpack.html#

2.4. 通過chainwebpack自定義打包入口

module.exports = {chainWebpack: config => {// 發布模式config.when(process.env.NODE_ENV === 'production', config => {config.entry('app').clear().add('./src/main-prod.js')})// 開發模式config.when(process.env.NODE_ENV === 'development', config => {config.entry('app').clear().add('./src/main-dev.js')})} }

四、資源加載優化

通過externals加載外部的CDN資源

1. 具體參考配置

config.set('externals', {vue: 'Vue','vue-router': 'VueRouter',axios: 'axios',lodash: '_',echarts: 'echarts',nprogress: 'NProgress','vue-quill-editor': 'VueQuillEditor'})

2. 指定CDN引用

同事需要在public/index.html的文件頭部,添加CDN資源引用

<!-- nprogress 進度條的樣式表文件 --><link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" /><!-- 富文本編輯器 的樣式表文件 --><link rel="stylesheet" href="https://cdn.bootcss.com/quill/1.3.7/quill.core.min.css" /><link rel="stylesheet" href="https://cdn.bootcss.com/quill/1.3.7/quill.snow.min.css" /><link rel="stylesheet" href="https://cdn.bootcss.com/quill/1.3.7/quill.bubble.min.css" /><script src="https://cdn.bootcss.com/vue/2.6.11/vue.min.js"></script><script src="https://cdn.bootcss.com/vue-router/3.1.3/vue-router.min.js"></script><script src="https://cdn.bootcss.com/axios/0.19.2/axios.min.js"></script><script src="https://cdn.bootcss.com/lodash.js/4.17.15/lodash.min.js"></script><script src="https://cdn.bootcss.com/echarts/4.7.0/echarts.min.js"></script><script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script><!-- 富文本編輯器的 js 文件 --><script src="https://cdn.bootcss.com/quill/1.3.7/quill.core.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js"></script>

3. 通過CDN優化ElementUI的打包

雖然在開發階段,我們啟用了element ui組件的按需加載,盡可能的減少打包的體積,但是那些被按需加載的組件,還是占用了較大的文件體積。此時,我們可以將element-ui中的組件,也通過CDN的形式來加載,這樣可以進一步減少打包后的文件體積。

3.1. 操作流程

具體操作如下:
①在main-prod.js中,注釋掉eleemnt-ui按需加載的代碼
②在index.html的頭部區域中,通過CDN來加載element-ui的js和css樣式

<!-- element-ui 的樣式表文件 --><link rel="stylesheet" href="https://cdn.bootcss.com/element-ui/2.13.0/theme-chalk/index.css" /> <!-- element-ui 的 js 文件 --><script src="https://cdn.bootcss.com/element-ui/2.13.0/index.js"></script>

五、首頁內容定制

不同的打包環境下,首頁內容可能會有所不同,我們可以通過插件的方式進行定制。

1. 插件配置1

module.exports = {chainWebpack: config => {// 發布模式config.when(process.env.NODE_ENV === 'production', config => {config.entry('app').clear().add('./src/main-prod.js')// 配置插件config.plugin('html').tap(args => {args[0].isProd = truereturn args})})// 開發模式config.when(process.env.NODE_ENV === 'development', config => {config.entry('app').clear().add('./src/main-dev.js')// 配置插件config.plugin('html').tap(args => {args[0].isProd = falsereturn args})})} }

2. 插件配置2

在public/index.html的首頁中,可以根據isProd的值,來決定如何渲染頁面結構

<!-- 按需渲染的頁面標題 --><title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev - ' %>電商后臺管理系統</title><!-- 按需加載外部的CDN資源 --><% if(htmlWebpackPlugin.options.isProd){ %><!-- 通過external 加載外部的CDN資源 --><% } %>

六、路由異步+懶加載

當打包構建應用時,JavaScript 包會變得非常大,影響頁面加載。如果我們能把不同路由對應的組件分割成不同的代碼塊,然后當路由被訪問的時候才加載對應組件,這樣就更加高效了。

結合 Vue 的異步組件和 Webpack 的代碼分割功能,輕松實現路由組件的懶加載。

1. 命令安裝

npm install --save-dev @babel/plugin-syntax-dynamic-import

2. 圖形化安裝(推薦使用)

安裝開發依賴:

任選其一種即可

3. 配置插件

插件官網:
https://babeljs.io/docs/en/babel-plugin-syntax-dynamic-import/
在babel.config.js文件中添加:

{"plugins": ["@babel/plugin-syntax-dynamic-import"] }

4. 組件引入方式修改

const Foo = () => import('./Foo.vue')const router = new VueRouter({routes: [{ path: '/foo', component: Foo }] })

5. 把組件按組分塊

官網案例:

const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue') const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue') const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue')

展示項目:
接下一篇:Vue優化策略_項目上線_02
https://gblfy.blog.csdn.net/article/details/105369051

總結

以上是生活随笔為你收集整理的Vue优化策略_项目发布_01的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。