From 8860aaa458370ba530d6a3bc7101848a5c7c3fda Mon Sep 17 00:00:00 2001 From: Dihak Date: Wed, 4 Mar 2020 07:52:42 +0700 Subject: [PATCH 1/8] Upgrade to Vue Version 4 --- babel.config.js | 2 +- package.json | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/babel.config.js b/babel.config.js index ba179669a12..e9558405fdc 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,5 +1,5 @@ module.exports = { presets: [ - '@vue/app' + '@vue/cli-plugin-babel/preset' ] } diff --git a/package.json b/package.json index 448d1ec3aab..baea684bd4d 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "axios": "0.18.1", "clipboard": "2.0.4", "codemirror": "5.45.0", + "core-js": "^3.6.4", "driver.js": "0.9.5", "dropzone": "5.5.1", "echarts": "4.2.1", @@ -74,10 +75,10 @@ "devDependencies": { "@babel/core": "7.0.0", "@babel/register": "7.0.0", - "@vue/cli-plugin-babel": "3.5.3", - "@vue/cli-plugin-eslint": "^3.9.1", - "@vue/cli-plugin-unit-jest": "3.5.3", - "@vue/cli-service": "3.5.3", + "@vue/cli-plugin-babel": "^4.2.3", + "@vue/cli-plugin-eslint": "^4.2.3", + "@vue/cli-plugin-unit-jest": "^4.2.3", + "@vue/cli-service": "^4.2.3", "@vue/test-utils": "1.0.0-beta.29", "autoprefixer": "^9.5.1", "babel-core": "7.0.0-bridge.0", From 41e48cf374340817d440314aabadf5ad61c95b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Wed, 10 Jun 2020 17:32:22 +0800 Subject: [PATCH 2/8] perf: update --- package.json | 96 ++++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 65b27fa92a2..30e9a64d36e 100644 --- a/package.json +++ b/package.json @@ -3,50 +3,22 @@ "version": "4.3.0", "description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features", "author": "Pan ", - "license": "MIT", "scripts": { "dev": "vue-cli-service serve", "build:prod": "vue-cli-service build", "build:stage": "vue-cli-service build --mode staging", + "new": "plop", "preview": "node build/index.js --preview", + "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", "lint": "eslint --ext .js,.vue src", - "test:unit": "jest --clearCache && vue-cli-service test:unit", "test:ci": "npm run lint && npm run test:unit", - "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", - "new": "plop" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "src/**/*.{js,vue}": [ - "eslint --fix", - "git add" - ] - }, - "keywords": [ - "vue", - "admin", - "dashboard", - "element-ui", - "boilerplate", - "admin-template", - "management-system" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/PanJiaChen/vue-element-admin.git" - }, - "bugs": { - "url": "https://github.com/PanJiaChen/vue-element-admin/issues" + "test:unit": "jest --clearCache && vue-cli-service test:unit" }, "dependencies": { "axios": "0.18.1", "clipboard": "2.0.4", "codemirror": "5.45.0", - "core-js": "^3.6.4", + "core-js": "3.6.5", "driver.js": "0.9.5", "dropzone": "5.5.1", "echarts": "4.2.1", @@ -75,40 +47,68 @@ "devDependencies": { "@babel/core": "7.0.0", "@babel/register": "7.0.0", - "@vue/cli-plugin-babel": "^4.2.3", - "@vue/cli-plugin-eslint": "^4.2.3", - "@vue/cli-plugin-unit-jest": "^4.2.3", - "@vue/cli-service": "^4.2.3", + "@vue/cli-plugin-babel": "4.4.1", + "@vue/cli-plugin-eslint": "4.4.1", + "@vue/cli-plugin-unit-jest": "4.4.1", + "@vue/cli-service": "4.4.1", "@vue/test-utils": "1.0.0-beta.29", - "autoprefixer": "^9.5.1", + "autoprefixer": "9.5.1", "babel-core": "7.0.0-bridge.0", - "babel-eslint": "10.0.1", + "babel-eslint": "10.1.0", "babel-jest": "23.6.0", "chalk": "2.4.2", "chokidar": "2.1.5", "connect": "3.6.6", - "eslint": "5.15.3", - "eslint-plugin-vue": "5.2.2", + "eslint": "6.7.2", + "eslint-plugin-vue": "6.2.2", "html-webpack-plugin": "3.2.0", "husky": "1.3.1", "lint-staged": "8.1.5", "mockjs": "1.0.1-beta3", "plop": "2.3.0", - "runjs": "^4.3.2", - "sass": "^1.26.2", - "sass-loader": "^7.1.0", + "runjs": "4.3.2", + "sass": "1.26.2", + "sass-loader": "7.1.0", "script-ext-html-webpack-plugin": "2.1.3", - "serve-static": "^1.13.2", + "serve-static": "1.13.2", "svg-sprite-loader": "4.1.3", "svgo": "1.2.0", "vue-template-compiler": "2.6.10" }, + "browserslist": [ + "> 1%", + "last 2 versions" + ], + "bugs": { + "url": "https://github.com/PanJiaChen/vue-element-admin/issues" + }, "engines": { "node": ">=8.9", "npm": ">= 3.0.0" }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "vue", + "admin", + "dashboard", + "element-ui", + "boilerplate", + "admin-template", + "management-system" + ], + "license": "MIT", + "lint-staged": { + "src/**/*.{js,vue}": [ + "eslint --fix", + "git add" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/PanJiaChen/vue-element-admin.git" + } } From f4f125d06c0aaa7e4f31d379fda7ac346f744813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Wed, 10 Jun 2020 19:03:48 +0800 Subject: [PATCH 3/8] perf: fixed lint --- src/components/ImageCropper/index.vue | 1 + src/store/modules/settings.js | 1 + src/store/modules/user.js | 29 +++++++++++---------------- src/views/excel/merge-header.vue | 28 +++++++++++++------------- 4 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/components/ImageCropper/index.vue b/src/components/ImageCropper/index.vue index 13ae9a1180c..65a4262bebf 100644 --- a/src/components/ImageCropper/index.vue +++ b/src/components/ImageCropper/index.vue @@ -248,6 +248,7 @@ export default { // 浏览器是否支持该控件 isSupported, // 浏览器是否支持触屏事件 + // eslint-disable-next-line no-prototype-builtins isSupportTouch: document.hasOwnProperty('ontouchstart'), // 步骤 step: 1, // 1选择文件 2剪裁 3上传 diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js index e389af79c70..110533f7389 100644 --- a/src/store/modules/settings.js +++ b/src/store/modules/settings.js @@ -13,6 +13,7 @@ const state = { const mutations = { CHANGE_SETTING: (state, { key, value }) => { + // eslint-disable-next-line no-prototype-builtins if (state.hasOwnProperty(key)) { state[key] = value } diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 1391fa4aa25..78009412bef 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -103,28 +103,23 @@ const actions = { }, // dynamically modify permissions - changeRoles({ commit, dispatch }, role) { - return new Promise(async resolve => { - const token = role + '-token' + async changeRoles({ commit, dispatch }, role) { + const token = role + '-token' - commit('SET_TOKEN', token) - setToken(token) + commit('SET_TOKEN', token) + setToken(token) - const { roles } = await dispatch('getInfo') + const { roles } = await dispatch('getInfo') - resetRouter() + resetRouter() - // generate accessible routes map based on roles - const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true }) + // generate accessible routes map based on roles + const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true }) + // dynamically add accessible routes + router.addRoutes(accessRoutes) - // dynamically add accessible routes - router.addRoutes(accessRoutes) - - // reset visited views and cached views - dispatch('tagsView/delAllViews', null, { root: true }) - - resolve() - }) + // reset visited views and cached views + dispatch('tagsView/delAllViews', null, { root: true }) } } diff --git a/src/views/excel/merge-header.vue b/src/views/excel/merge-header.vue index 2646b9d0d74..4be0227d769 100644 --- a/src/views/excel/merge-header.vue +++ b/src/views/excel/merge-header.vue @@ -71,21 +71,21 @@ export default { }, handleDownload() { this.downloadLoading = true - import('@/vendor/Export2Excel').then(excel => { - const multiHeader = [['Id', 'Main Information', '', '', 'Date']] - const header = ['', 'Title', 'Author', 'Readings', ''] - const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time'] - const list = this.list - const data = this.formatJson(filterVal, list) - const merges = ['A1:A2', 'B1:D1', 'E1:E2'] - excel.export_json_to_excel({ - multiHeader, - header, - merges, - data - }) - this.downloadLoading = false + import('@/vendor/Export2Excel').then(excel => { + const multiHeader = [['Id', 'Main Information', '', '', 'Date']] + const header = ['', 'Title', 'Author', 'Readings', ''] + const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time'] + const list = this.list + const data = this.formatJson(filterVal, list) + const merges = ['A1:A2', 'B1:D1', 'E1:E2'] + excel.export_json_to_excel({ + multiHeader, + header, + merges, + data }) + this.downloadLoading = false + }) }, formatJson(filterVal, jsonData) { return jsonData.map(v => filterVal.map(j => { From bb346d9c6c1fe007f63d502c9e7e57fe9911beda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Wed, 10 Jun 2020 19:44:51 +0800 Subject: [PATCH 4/8] perf: update --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 30e9a64d36e..0a4cc28f9bf 100644 --- a/package.json +++ b/package.json @@ -86,11 +86,6 @@ "node": ">=8.9", "npm": ">= 3.0.0" }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, "keywords": [ "vue", "admin", @@ -107,6 +102,11 @@ "git add" ] }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, "repository": { "type": "git", "url": "git+https://github.com/PanJiaChen/vue-element-admin.git" From 14702ac8e2d98ec4adbbfb4886b05c6f793456d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Thu, 18 Jun 2020 20:33:39 +0800 Subject: [PATCH 5/8] perf: update --- package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 16962ba7b95..584ef432c9f 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,14 @@ "author": "Pan ", "scripts": { "dev": "vue-cli-service serve", + "lint": "eslint --ext .js,.vue src", "build:prod": "vue-cli-service build", "build:stage": "vue-cli-service build --mode staging", - "new": "plop", "preview": "node build/index.js --preview", + "new": "plop", "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", - "lint": "eslint --ext .js,.vue src", - "test:ci": "npm run lint && npm run test:unit", - "test:unit": "jest --clearCache && vue-cli-service test:unit" + "test:unit": "jest --clearCache && vue-cli-service test:unit", + "test:ci": "npm run lint && npm run test:unit" }, "dependencies": { "axios": "0.18.1", @@ -44,10 +44,10 @@ "xlsx": "0.14.1" }, "devDependencies": { - "@vue/cli-plugin-babel": "4.4.1", - "@vue/cli-plugin-eslint": "4.4.1", - "@vue/cli-plugin-unit-jest": "4.4.1", - "@vue/cli-service": "4.4.1", + "@vue/cli-plugin-babel": "4.4.4", + "@vue/cli-plugin-eslint": "4.4.4", + "@vue/cli-plugin-unit-jest": "4.4.4", + "@vue/cli-service": "4.4.4", "@vue/test-utils": "1.0.0-beta.29", "autoprefixer": "9.5.1", "babel-core": "7.0.0-bridge.0", From 2ea998f91d889480821468de86df9bf8defbb5f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Thu, 18 Jun 2020 20:57:51 +0800 Subject: [PATCH 6/8] chore: use babel-plugin-dynamic-import-node --- .env.development | 9 --------- babel.config.js | 11 ++++++++++- package.json | 1 + 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.env.development b/.env.development index 8f5856db1ce..de583d0940d 100644 --- a/.env.development +++ b/.env.development @@ -3,12 +3,3 @@ ENV = 'development' # base api VUE_APP_BASE_API = '/dev-api' - -# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, -# to control whether the babel-plugin-dynamic-import-node plugin is enabled. -# It only does one thing by converting all import() to require(). -# This configuration can significantly increase the speed of hot updates, -# when you have a large number of pages. -# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js - -VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/babel.config.js b/babel.config.js index e9558405fdc..fb82b2715f4 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,5 +1,14 @@ module.exports = { presets: [ + // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app '@vue/cli-plugin-babel/preset' - ] + ], + 'env': { + 'development': { + // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). + // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. + // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html + 'plugins': ['dynamic-import-node'] + } + } } diff --git a/package.json b/package.json index 584ef432c9f..0095352478a 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "axios": "0.18.1", + "babel-plugin-dynamic-import-node": "2.3.3", "clipboard": "2.0.4", "codemirror": "5.45.0", "core-js": "3.6.5", From 74a49e0a196bfeba6366efe8fffdebe9d1b624a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Fri, 19 Jun 2020 15:24:03 +0800 Subject: [PATCH 7/8] bump --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 0095352478a..8060905329b 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "@vue/cli-service": "4.4.4", "@vue/test-utils": "1.0.0-beta.29", "autoprefixer": "9.5.1", - "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.1.0", "babel-jest": "23.6.0", "chalk": "2.4.2", @@ -66,7 +65,7 @@ "plop": "2.3.0", "runjs": "4.3.2", "sass": "1.26.2", - "sass-loader": "7.1.0", + "sass-loader": "8.0.2", "script-ext-html-webpack-plugin": "2.1.3", "serve-static": "1.13.2", "svg-sprite-loader": "4.1.3", From a862a7f15fc53c8e6dc2435789081e9269f0e880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Fri, 19 Jun 2020 15:45:56 +0800 Subject: [PATCH 8/8] UPDATE --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8060905329b..6abc61b9dcd 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ }, "dependencies": { "axios": "0.18.1", - "babel-plugin-dynamic-import-node": "2.3.3", "clipboard": "2.0.4", "codemirror": "5.45.0", "core-js": "3.6.5", @@ -53,6 +52,7 @@ "autoprefixer": "9.5.1", "babel-eslint": "10.1.0", "babel-jest": "23.6.0", + "babel-plugin-dynamic-import-node": "2.3.3", "chalk": "2.4.2", "chokidar": "2.1.5", "connect": "3.6.6",