• Vue项目使用CDN优化首屏加载问题,cdn引入Element UI


    首先遇见的第一个坑是Element UI依赖于vue,若是cdn引入Element UI,vue也得使用一份cdn引入

    接下来在index.html中cdn进行引入

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <link rel="Shortcut Icon" href='./static/img/favicon.ico' type="image/x-icon" />
        <meta name="keywords" content="">
        <meta name="description" content="">
        <title>xxx平台</title>
        <style>
          .el-message{
            top:60px !important;
          }
        </style>
        <link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.2/lib/theme-chalk/index.css">
        <link rel="stylesheet" href="https://unpkg.com/swiper@5.3.6/css/swiper.css">
      </head>
      <body>
        <div id="app"></div>
        <!-- built files will be auto injected -->
        <script src="//at.alicdn.com/t/font_2020075_kwfmx8jsn5.js"></script>
        <!-- vue -->
        <script src="https://cdn.jsdelivr.net/npm/vue@2.5.2/dist/vue.min.js"></script>
        <!-- vue-router -->
        <!-- <script src="https://cdn.jsdelivr.net/npm/vue-router@3.0.1/dist/vue-router.min.js"></script> -->
        <!-- element-ui -->
        <script src="https://unpkg.com/element-ui@2.13.2/lib/index.js"></script>
        <!-- swiper -->
        <script src="https://unpkg.com/swiper@5.3.6/js/swiper.js"></script>
        <!-- vue-awesome-swiper这个文件一定要引入,否则的话swiper无法正常使用 -->
        <script src="https://cdn.jsdelivr.net/npm/vue-awesome-swiper/dist/vue-awesome-swiper.js"></script>
        <script type="text/javascript">
              Vue.use(window.VueAwesomeSwiper);
        </script>
      </body>
    </html>

    就是在main.js中去掉Element UI

    // The Vue build version to load with the `import` command
    // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    import Vue from 'vue'
    import App from './App'
    import router from './router'
    //element-ui 引入
    // import ElementUI from 'element-ui'
    // import 'element-ui/lib/theme-chalk/index.css'
    // Vue.use(ElementUI)
    Vue.config.productionTip = false
    //引入对项目初始文件
    import './assets/css/reset.css'
    ...
    new Vue({
      el: '#app',
      router,
      store,
      components: { App },
      template: '<App/>'
    })

    然后在webpack.base.conf.js设置

      output: {
        ...
      },
      externals : {
        'vue':'Vue',
        // 'vue-router': 'VueRouter',
        'element-ui':'ElementUI',
        'swiper': 'swiper'
      },    

    这样这是完成后运行 npm run build 可以明显看见打包后首屏文件vendor变小。

    这样设置后直接在本地运行项目npm run dev 也是没有问题可行的

  • 相关阅读:
    网络基础之网络协议篇
    JVM-07-执行引擎
    JVM-06-对象实例化、内存布局、访问定位以及直接内存
    JVM-05-方法区
    JVM-04-堆
    JVM-03-本地方法接口和本地方法栈
    JVM-02-程序计数器 虚拟机栈
    JVM-01-类加载子系统
    JVM-00-引言
    swagger
  • 原文地址:https://www.cnblogs.com/enhengenhengNymph/p/14462360.html
Copyright © 2020-2023  润新知