VUE_shop(第十天)项目的打包优化

项目的打包优化

1.添加页面的加载效果

1.首先安装运行依赖nprocess,在main.js文件中的axios拦截器拦截请求的时候调用Npeocees.start. 在拦截响应的时候调用nprocess.end()来隐藏加载条

2.项目报错项的优化:

1.开发环境下的报错优化,手动去除报错的地方,重新编译运行,知道项目无报错。
2.生产环境下的报错:报错一般是console的多余导致的错误。
首先: 安装开发依赖项,babel-plugin-transform-remove-console 这个依赖项。
再在babel.config.js中进行相关依赖项的配

// 这是项目发布阶段需要用到的 babel 插件
const prodPlugins = []
if (process.env.NODE_ENV === 'production') {
  prodPlugins.push('transform-remove-console')
}

module.exports = {
  presets: ['@vue/app'],
  plugins: [
    [
      'component',
      {
        libraryName: 'element-ui',
        styleLibraryName: 'theme-chalk'
      }
    ],
    // 发布产品时候的插件数组
    ...prodPlugins,
    '@babel/plugin-syntax-dynamic-import'
  ]
}

3.减少项目的依赖项目的体积的大小

3.在ui面板查看打包报告
通过vue.config.js中配置不同环境下的打包入口。
再通过externals加载外部的CDN资源来减少import文件的大小,

导出如下配置

chainWebpack: config => {
    // 发布模式
    //指定在发布模式的下的文件打包入口
    config.when(process.env.NODE_ENV === 'production', config => {
      config
        .entry('app')
        .clear()
        .add('./src/main-prod.js')
	//通过externals节点进行外部CDN资源的加载
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor'
      })
	//自定义首页的内容,在首页中可以访问到
      config.plugin('html').tap(args => {
        args[0].isProd = true
        return 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 = false
        return args
      })
    })
  }

之后需要在public/index.html中导入希望通过CDN加载在生产环境下的资源。

通过CDN优化element-ui。
在入口文件中删除element-ui的引入然后在index.js中引入相关的Cdn资源

//可以拿到配置中自定义的属性,从而来自定义首页的内容
<title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev - ' %>电商后台管理系统</title>
//在生产环境下才进行外部资源的引入,在开发环境下不需要引入这些外部的资源。
    <% if(htmlWebpackPlugin.options.isProd){ %>
    
    <!-- nprogress 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" />
   
    <!-- 富文本编辑器 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.core.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.snow.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.bubble.min.css" />
  
    <!-- element-ui 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.8.2/theme-chalk/index.css" />

    <script src="https://cdn.staticfile.org/vue/2.5.22/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-router/3.0.1/vue-router.min.js"></script>
    <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
    <script src="https://cdn.staticfile.org/lodash.js/4.17.11/lodash.min.js"></script>
    <script src="https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script>
    
    <!-- 富文本编辑器的 js 文件 -->
    <script src="https://cdn.staticfile.org/quill/1.3.4/quill.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js"></script>

    <!-- element-ui 的 js 文件 -->
    <script src="https://cdn.staticfile.org/element-ui/2.8.2/index.js"></script>

    <% } %>

4.实现路由的懒加载

当打包构建项目时js文件会特别的大,影响到页面的加载,如果把不同路由对应的组件分割成不同的代码块,这样的话就可以提高加载的效率,详情见下面页面

[> https://router.vuejs.org/zh/guide/advanced/lazy-loading.html]
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.配置https服务,使信息传输更安全。
4.npm2
在这里插入图片描述

完结!!!

十天,第一个比较完整的项目学习结束了,附下网址

添加链接描述bilibi万岁!!

posted @ 2020-03-21 10:02  jacksonni  阅读(276)  评论(0编辑  收藏  举报