优化 cdn

This commit is contained in:
FairyEver 2019-12-13 11:11:01 +08:00
parent 193d006570
commit c8ae44e414
5 changed files with 84 additions and 60 deletions

50
dependencies.js Normal file
View File

@ -0,0 +1,50 @@
module.exports = [
{
name: 'vue',
library: 'Vue',
css: '',
js: 'https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js'
},
{
name: 'vue-router',
library: 'VueRouter',
css: '',
js: 'https://unpkg.com/vue-router@3.0.6/dist/vue-router.js'
},
{
name: 'vuex',
library: 'Vuex',
css: '',
js: 'https://unpkg.com/vuex@3.1.1/dist/vuex.js'
},
{
name: 'axios',
library: 'axios',
css: '',
js: 'https://unpkg.com/axios@0.19.0/dist/axios.min.js'
},
{
name: 'better-scroll',
library: 'BScroll',
css: '',
js: 'https://unpkg.com/better-scroll@1.15.2/dist/bscroll.min.js'
},
{
name: '@d2-projects/d2-crud',
library: 'D2Crud',
css: '',
js: 'https://cdn.d2.pub/packages/@d2-projects/d2-crud@2.0.5/d2-crud.js'
},
{
name: '@d2-projects/vue-table-export',
library: 'VueTableExport',
css: '',
js: 'https://cdn.d2.pub/packages/@d2-projects/vue-table-export@1.0.1/vue-table-export.js'
},
{
name: '@d2-projects/vue-table-import',
library: 'VueTableImport',
css: '',
js: 'https://cdn.d2.pub/packages/@d2-projects/vue-table-import@1.0.0/vue-table-import.js'
}
]

53
package-lock.json generated
View File

@ -6151,9 +6151,9 @@
}
},
"element-ui": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.12.0.tgz",
"integrity": "sha512-DapyT0PW4i/1ETPHk8K8Qbe8B6hj10+dXsRTrOTFryV9wAs6e9mCxbV65awokyR2/v/KuIHJmqX+mH3wUa4rOQ==",
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.13.0.tgz",
"integrity": "sha512-KYsHWsBXYbLELS8cdfvgJTOMSUby3UEjvsPV1V1VmgJ/DdkOAS4z3MiOrPxrT9w2Cc5lZ4eVSQiGhYFR5NVChw==",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
@ -8450,7 +8450,6 @@
"version": "4.5.3",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz",
"integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==",
"dev": true,
"requires": {
"neo-async": "^2.6.0",
"optimist": "^0.6.1",
@ -8461,8 +8460,7 @@
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@ -8596,9 +8594,12 @@
"dev": true
},
"highlight.js": {
"version": "9.16.2",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.16.2.tgz",
"integrity": "sha512-feMUrVLZvjy0oC7FVJQcSQRqbBq9kwqnYE4+Kj9ZjbHh3g+BisiPgF49NyQbVLNdrL/qqZr3Ca9yOKwgn2i/tw=="
"version": "9.17.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.17.1.tgz",
"integrity": "sha512-TA2/doAur5Ol8+iM3Ov7qy3jYcr/QiJ2eDTdRF4dfbjG7AaaB99J5G+zSl11ljbl6cIcahgPY6SKb3sC3EJ0fw==",
"requires": {
"handlebars": "^4.5.3"
}
},
"hmac-drbg": {
"version": "1.0.1",
@ -11639,8 +11640,7 @@
"neo-async": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
"dev": true
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
},
"nice-try": {
"version": "1.0.5",
@ -12056,7 +12056,6 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"dev": true,
"requires": {
"minimist": "~0.0.1",
"wordwrap": "~0.0.2"
@ -12065,8 +12064,7 @@
"minimist": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"dev": true
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
}
}
},
@ -15842,7 +15840,6 @@
"version": "3.6.9",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.9.tgz",
"integrity": "sha512-pcnnhaoG6RtrvHJ1dFncAe8Od6Nuy30oaJ82ts6//sGSXOP5UjBMEthiProjXmMNHOfd93sqlkztifFMcb+4yw==",
"dev": true,
"optional": true,
"requires": {
"commander": "~2.20.3",
@ -15853,14 +15850,12 @@
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true,
"optional": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true
}
}
@ -16149,12 +16144,9 @@
}
},
"v-contextmenu": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/v-contextmenu/-/v-contextmenu-2.8.1.tgz",
"integrity": "sha512-hdG9Vmf315ESm/nWuge9RpQasjVAPoUqZsLSdJ8m3utsifJrnTdagmkVx0daxUicJ0FtzrUDnbF3VOAKI7vcAA==",
"requires": {
"vue": "^2.5.16"
}
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/v-contextmenu/-/v-contextmenu-2.9.0.tgz",
"integrity": "sha512-8FnZXOfELGvfX9Zv8mmdmsxpZzS83kSS6eNyxMekHN+yo1+cZM2oeKOdpLH/Rs/n2LSJkhfxxzgS6EeGGRQyVA=="
},
"validate-npm-package-license": {
"version": "3.0.4",
@ -16416,9 +16408,9 @@
"dev": true
},
"vue-i18n": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.15.0.tgz",
"integrity": "sha512-juJ/avAP39bOMycC+qQDLJ8U9z9LtLF/9PsRoJLBSfsYZo9bqYntyyX5QPicwlb1emJKjgxhZ3YofHiQcXBu0Q=="
"version": "8.15.1",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.15.1.tgz",
"integrity": "sha512-GBbz8qYCu0U2LNu4IcuFLZiuyninG4k26knvhL7GZG5Ncp4RR2VKDEH6g8gQ6I+UUBCvH2MBQVPSdxWe4DBkPw=="
},
"vue-jest": {
"version": "3.0.5",
@ -16466,9 +16458,9 @@
"integrity": "sha512-8iSa4mGNXBjyuSZFCCO4fiKfvzqk+mhL0lnKuGcQtO1eoj8nq3CmbEG8FwK5QqoqwDgsjsf1GDuisDX4cdb/aQ=="
},
"vue-splitpane": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/vue-splitpane/-/vue-splitpane-1.0.4.tgz",
"integrity": "sha512-aSLmwNyqWCtn4q/JlEXa/UB9/zP1SLODfmMJof+qitL91Rz6g13cJKGmNEHJtBp6ivsk6p74fGfXUJUB3Izuig=="
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/vue-splitpane/-/vue-splitpane-1.0.6.tgz",
"integrity": "sha512-6sneVSEeF1VsCD025HP93nRxwzYhv3rotCeYi2Ah1FmGxwtfqbCZEIzaHGberdGNCpMlEzGD/1OIE1kK5QukLA=="
},
"vue-style-loader": {
"version": "4.1.2",
@ -16957,8 +16949,7 @@
"wordwrap": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"dev": true
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
},
"worker-farm": {
"version": "1.7.0",

View File

@ -23,11 +23,11 @@
"countup.js": "^2.0.4",
"dayjs": "^1.8.14",
"echarts": "^4.2.1",
"element-ui": "^2.11.1",
"element-ui": "^2.13.0",
"flex.css": "^1.1.7",
"fuse.js": "^3.4.5",
"github-markdown-css": "^3.0.1",
"highlight.js": "^9.15.8",
"highlight.js": "^9.17.1",
"hotkeys-js": "^3.6.11",
"js-cookie": "^2.2.0",
"lodash": "^4.17.11",
@ -41,13 +41,13 @@
"simplemde": "^1.11.2",
"ua-parser-js": "^0.7.20",
"v-charts": "^1.19.0",
"v-contextmenu": "^2.8.0",
"v-contextmenu": "^2.9.0",
"vue": "^2.6.10",
"vue-grid-layout": "^2.3.4",
"vue-i18n": "^8.11.2",
"vue-i18n": "^8.15.1",
"vue-json-tree-view": "^2.1.4",
"vue-router": "^3.0.6",
"vue-splitpane": "^1.0.4",
"vue-splitpane": "^1.0.6",
"vue-ueditor-wrap": "^2.4.1",
"vuex": "^3.1.1"
},

View File

@ -14,11 +14,11 @@ import routes from './routes'
// fix vue-router NavigationDuplicated
const VueRouterPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (location) {
return VueRouterPush.call(this, location).catch(err => err)
return VueRouterPush.call(this, location)
}
const VueRouterReplace = VueRouter.prototype.replace
VueRouter.prototype.replace = function replace (location) {
return VueRouterReplace.call(this, location).catch(err => err)
return VueRouterReplace.call(this, location)
}
Vue.use(VueRouter)

View File

@ -1,11 +1,9 @@
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']
const VueFilenameInjector = require('@d2-projects/vue-filename-injector')
const ThemeColorReplacer = require('webpack-theme-color-replacer')
const forElementUI = require('webpack-theme-color-replacer/forElementUI')
const dependencies = require('./dependencies')
// 拼接路径
const resolve = dir => require('path').join(__dirname, dir)
@ -17,28 +15,13 @@ process.env.VUE_APP_BUILD_TIME = require('dayjs')().format('YYYY-M-D HH:mm:ss')
// 基础路径 注意发布之前要先修改这里
let publicPath = process.env.VUE_APP_PUBLIC_PATH || '/'
const externals = {
'vue': 'Vue',
'vue-router': 'VueRouter',
'vuex': 'Vuex',
'@d2-projects/d2-crud': 'D2Crud',
'@d2-projects/vue-table-export': 'VueTableExport',
'@d2-projects/vue-table-import': 'VueTableImport'
}
let externals = {}
dependencies.forEach(package => { externals[package.name] = package.library })
// 引入文件的 cdn 链接
const cdn = {
css: [
'https://unpkg.com/element-ui@2.11.1/lib/theme-chalk/index.css'
],
js: [
'https://unpkg.com/vue@2.6.10/dist/vue.min.js',
'https://cdn.jsdelivr.net/npm/vue-router@3.0.6/dist/vue-router.min.js',
'https://cdn.jsdelivr.net/npm/vuex@3.1.1/dist/vuex.min.js',
'https://cdn.d2.pub/packages/@d2-projects/d2-crud@2.0.5/d2-crud.js',
'https://cdn.d2.pub/packages/@d2-projects/vue-table-export@1.0.1/vue-table-export.js',
'https://cdn.d2.pub/packages/@d2-projects/vue-table-import@1.0.0/vue-table-import.js'
]
css: dependencies.map(e => e.css).filter(e => e),
js: dependencies.map(e => e.js).filter(e => e)
}
module.exports = {