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

View File

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

View File

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

View File

@ -1,11 +1,9 @@
const CompressionWebpackPlugin = require('compression-webpack-plugin') const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css'] const productionGzipExtensions = ['js', 'css']
const VueFilenameInjector = require('@d2-projects/vue-filename-injector') const VueFilenameInjector = require('@d2-projects/vue-filename-injector')
const ThemeColorReplacer = require('webpack-theme-color-replacer') const ThemeColorReplacer = require('webpack-theme-color-replacer')
const forElementUI = require('webpack-theme-color-replacer/forElementUI') const forElementUI = require('webpack-theme-color-replacer/forElementUI')
const dependencies = require('./dependencies')
// 拼接路径 // 拼接路径
const resolve = dir => require('path').join(__dirname, dir) 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 || '/' let publicPath = process.env.VUE_APP_PUBLIC_PATH || '/'
const externals = { let externals = {}
'vue': 'Vue', dependencies.forEach(package => { externals[package.name] = package.library })
'vue-router': 'VueRouter',
'vuex': 'Vuex',
'@d2-projects/d2-crud': 'D2Crud',
'@d2-projects/vue-table-export': 'VueTableExport',
'@d2-projects/vue-table-import': 'VueTableImport'
}
// 引入文件的 cdn 链接 // 引入文件的 cdn 链接
const cdn = { const cdn = {
css: [ css: dependencies.map(e => e.css).filter(e => e),
'https://unpkg.com/element-ui@2.11.1/lib/theme-chalk/index.css' js: dependencies.map(e => e.js).filter(e => e)
],
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'
]
} }
module.exports = { module.exports = {