From c8ae44e41431eaea271dc9a540b42f2989973c63 Mon Sep 17 00:00:00 2001 From: FairyEver <1711467488@qq.com> Date: Fri, 13 Dec 2019 11:11:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20cdn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.js | 50 ++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 53 +++++++++++++++++++-------------------------- package.json | 10 ++++----- src/router/index.js | 4 ++-- vue.config.js | 27 +++++------------------ 5 files changed, 84 insertions(+), 60 deletions(-) create mode 100644 dependencies.js diff --git a/dependencies.js b/dependencies.js new file mode 100644 index 00000000..c6761816 --- /dev/null +++ b/dependencies.js @@ -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' + } +] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 975a87cb..aff59b5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index 9b98f77b..92d12744 100644 --- a/package.json +++ b/package.json @@ -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" }, diff --git a/src/router/index.js b/src/router/index.js index 50da5de0..034351d3 100755 --- a/src/router/index.js +++ b/src/router/index.js @@ -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) diff --git a/vue.config.js b/vue.config.js index 8bb287d2..1b95613c 100644 --- a/vue.config.js +++ b/vue.config.js @@ -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 = {