Vue项目优化技巧和项目上线

本文详细介绍了Vue项目的优化技巧,包括配置nprogress进度条、移除console.log信息、设置开发与发布的不同打包入口、使用externals加载CDN资源、实现路由懒加载等。此外,还讲解了项目上线的步骤,如node.js部署、配置https服务、启用GZIP压缩以及通过pm2进行应用管理。
摘要由CSDN通过智能技术生成

1 配置loading效果

1.1 nprogress进度条

$ npm i nprogress -S

// 修改main.js入口文件
// 导入进度条效果
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 在请求拦截器和响应拦截器配置
// 请求拦截器
axios.interceptors.request.use(config => {
   
  config.headers.Authorization = window.sessionStorage.getItem('token')
  //开启nprogress效果
  NProgress.start()
  return config
})
axios.interceptors.response.use(res => {
   
  //关闭nprogress效果
  NProgress.done()
  return res
})

2 项目优化

2.1 生产环境移除console.log信息

  1. 安装babel-plugin-transform-remove-console

$ npm install babel-minify --save-dev

  1. 打开babel.config.js,编辑代码如下:
const ProdPlugins = []
// 区分生产环境还是开发环境 是生产环境才使用插件
if (process.env.NODE_ENV === 'production') {
   
  ProdPlugins.push('babel-plugin-transform-remove-console')
}
module.exports = {
   
  presets: ['@vue/cli-plugin-babel/preset'],
  plugins: [
    [
      'component',
      {
   
        libraryName: 'element-ui',
        styleLibraryName: 'theme-chalk'
      }
    ],
    //展开运算符 插入插件
    ...ProdPlugins
  ]
}

2.2 为开发模式与发布模式指定不同的打包入口

chainWebpack 通过链式编程的形式,来修改默认的 webpack 配置
configureWebpack 通过操作对象的形式,来修改默认的 webpack 配置

  1. 打开Vue.config.js配置webpack项
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')
    })
  }
}

2.3 externals加载外部cdn资源

通过externals排除这些包,使它们不被打包到js/chunk-vendors.******.js文件中

  1. 修改 vue.config.js文件
// vue.config.js文件
module.exports = {
   
  chainWebpack: config => {
   
    // 生产环境 打包入口文件
    config.when(process.env.NODE_ENV === 'production', config => {
   
      config
        .entry('app')
        .clear()
        .add('./src/main-prod.js')

      // 使用externals设置排除项 ********************
      config.set('externals', {
   
        vue: 'Vue',
        'vue-router': 'router',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值