客户管理系统开发定制vue项目中使用CDN引入

🐱 个人主页:
🙋‍♂️ 作者简介:客户管理系统开发定制前端领域新星创作者、客户管理系统开发定制阿里云专家博主,客户管理系统开发定制专注于前端各领域技术,共同学习共同进步,一起加油呀!
💫系列专栏:、
📢 资料领取:前端进阶资料以及文中源码可以找我免费领取
🔥 前端学习交流:博主建立了一个前端交流群,汇集了各路大神,一起交流学习,期待你的加入!(文末有我wx或者私信)

前言

CDN(内容分发网络)指请求资源的方式,即通过script头去请求对应的脚本资源的一种方式,项目里配置之后不需要通过npm包管理工具去下载配置的包。
目的:将引用的外部js、css文件剥离开来,不编译到vendor.js中,而是用资源的形式引用,这样浏览器可以使用多个线程异步将vendor.js、外部的js等加载下来,达到加速首页展示效果。

1. 在vue.config.js进行配置

本人对vuevuexvue-routeraxioselement-uiecharts进行了cdn引用。(请求element-uiecharts的cdn较慢)

//生产环境标记const IS_PRODUCTION = process.env.NODE_ENV === 'production'//配置引用cdn的js、css地址const cdn = {    css: [        'https://unpkg.com/element-ui@2.13.2/lib/theme-chalk/index.css'    ],    js: [        'https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.min.js',        'https://cdn.bootcdn.net/ajax/libs/vue-router/3.0.2/vue-router.min.js',        'https://cdn.bootcdn.net/ajax/libs/vuex/3.1.0/vuex.min.js',        'https://cdn.bootcdn.net/ajax/libs/axios/0.18.1/axios.min.js',        'https://unpkg.com/element-ui@2.13.2/lib/index.js',        'https://cdn.bootcdn.net/ajax/libs/echarts/5.0.1/echarts.min.js'    ]}//配置打包时使用CDN节点(加入externals外部扩展), 忽略打包的第三方库//左面放package.json中的扩展的名称,右面放项目依赖的名称(项目初始化要用的名称)const externals = {  // 属性名称 vue, 表示遇到 import xxx from 'vue' 这类引入 'vue'的,不去 node_modules 中找,而是去找全局变量 Vue(其他的为VueRouter、Vuex、axios、ELEMENT、echarts,注意全局变量是一个确定的值,不能修改为其他值,修改为其他大小写或者其他值会报错,若有异议可留言)    vue: 'Vue',    'vue-router': 'VueRouter',    vuex: 'Vuex',    axios: 'axios',    'element-ui': 'ELEMENT',    'echarts': 'echarts'}chainWebpack(config) {        if (IS_PRODUCTION) {            config.plugin('html').tap(args => {                args[0].cdn = cdn                return args            })            //视为一个外部库,而不将它打包进来            config.externals(externals)        }    }      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

2.在public/index.html文件配置

使用 webpack中自带的插件 html插件进行配置,在 index.html 中增加判断,是否使用 CDN, htmlWebpackPlugin.options 使用的是vue.config中的config.plugin('html')的插件属性。

  <!-- 使用CDNCSS文件 -->     <% for (var i in     htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>     <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />     <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />   <% } %>    <!-- 使用CDN加速的JS文件,配置在vue.config.js下 -->   <% for (var i in     htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.js) { %>     <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>   <% } %>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.易出错点

  1. Router is not defined

    解决方案: 将Router 改为 ‘VueRouter’
  2. Uncaught TypeError: Illegal constructor

    解决方案:修改externals 中‘'element-ui’的value
    const externals = {     'element-ui': 'ELEMENT',    }
  • 1
  • 2
  • 3
  • 4
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发