WEB开发

Vue/cli项目使用CDN进行优化

2020-02-06  本文已影响0人  情有千千节

我们经常会遇到项目打包后体积过大的问题,这时我们可以将Vue及相关框架拆分出来,使用CDN的形式引入,我们这里以Vant为例

在 public/index.html引入CDN

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.4/lib/index.css">
    <!-- 引入 Vue 和 Vant 的 JS 文件 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vant@2.4/lib/vant.min.js"></script>

配置webpack externals

vue.config.js
这样引入后,项目内import的vue和vant 都会指向引入而不是本地

configureWebpack: {
    externals: {
      'vue': 'Vue',
      'vant': 'vant'
    }
  },

配置全局Vant组件使用

main.js
看了很多其他的博客,很多人没有注意这一点,导致报错 组件找不到, 既然使用了cnd 我们就没必要局部引入,直接全局引入所有组件即可

import Vant from 'vant';

Vue.use(Vant)

组件中书写

<template>
  <div>首页

  <van-button type="default" @click="show">按钮</van-button>
  </div>
</template>

<script>
// import { Button } from 'vant';
export default {
  name: "homeIndex",
  methods: {
    show() {
      vant.Toast('提示');
    }
  }
};
</script>

问题

由于script指向的一般都是生产环境的vue, 所以调试chrome的时候vue-devtool可能不会触发, 这个时候要找到对应的谷歌插件,在详情中允许访问网址。并且注释掉main.js中的import Vue from 'vue'

或者

// 若是没有开启Devtools工具,在开发环境中开启,在生产环境中关闭
if (process.env.NODE_ENV == 'development') {
    Vue.config.devtools = true;
} else {
    Vue.config.devtools = false;
}
上一篇下一篇

猜你喜欢

热点阅读