Commit bfc44957 authored by “yiyousong”'s avatar “yiyousong”

fix:修改页面

parent 33a20c0f
......@@ -54,6 +54,7 @@
"babel-eslint": "^10.1.0",
"babel-plugin-transform-remove-console": "^6.9.4",
"babel-polyfill": "^6.26.0",
"cache-loader": "^4.1.0",
"compression-webpack-plugin": "^2.0.0",
"deepmerge": "^4.2.2",
"eslint": "^6.7.2",
......
<template>
<a-upload
list-type="text"
class="file-uploader"
:show-upload-list="false"
:action="action"
:headers="headers"
@change="fileChange"
>
<slot>
<div>导入</div>
</slot>
</a-upload>
<a-upload
list-type="text"
class="file-uploader"
:show-upload-list="false"
:action="action"
:headers="headers"
@change="fileChange"
>
<slot>
<div>导入</div>
</slot>
</a-upload>
</template>
<script>
import {mapMutations} from "vuex"
import {getCookie} from "@/utils/request"
import { mapMutations } from "vuex";
// import {getCookie} from "@/utils/request"
export default {
props:{
action:String
props: {
action: String,
},
data() {
return {
headers: "",
};
},
methods: {
...mapMutations("fileloading", ["settip", "setspinning"]),
/**
* 导入文件监听
*/
fileChange(info) {
if (info.file.status === "uploading") {
this.settip("文件导入中...");
this.setspinning(true);
return;
}
if (info.file.status === "error") {
this.$message.error("导入失败");
}
if (info.file.status === "done") {
this.$message("导入成功");
// 导出成功
this.$emit("success", "addfile");
}
this.setspinning(false);
this.settip("加载中...");
},
data(){
return{
headers:getCookie()
}
},
methods:{
...mapMutations('fileloading',['settip','setspinning']),
/**
* 导入文件监听
*/
fileChange(info){
if (info.file.status === 'uploading') {
this.settip('文件导入中...')
this.setspinning(true)
return;
}
if (info.file.status === 'error') {
this.$message.error("导入失败")
}
if (info.file.status === 'done') {
this.$message("导入成功")
// 导出成功
this.$emit("success",'addfile')
}
this.setspinning(false)
this.settip('加载中...')
}
}
}
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -93,7 +93,7 @@ export default {
},
},
created() {
this.loadCacheConfig(this.$router?.options?.routes);
// this.loadCacheConfig(this.$router?.options?.routes);
this.loadCachedTabs();
const route = this.$route;
if (this.pageList.findIndex((item) => item.path === route.path) === -1) {
......@@ -115,10 +115,10 @@ export default {
this.correctPageMinHeight(this.tabsOffset);
},
watch: {
"$router.options.routes": function (val) {
this.excludeKeys = [];
this.loadCacheConfig(val);
},
// "$router.options.routes": function (val) {
// this.excludeKeys = [];
// this.loadCacheConfig(val);
// },
$route: function (newRoute) {
this.activePage = newRoute.path;
const page = this.pageList.find((item) => item.path === newRoute.path);
......@@ -364,17 +364,18 @@ export default {
}
}
},
loadCacheConfig(routes, pCache = true) {
routes.forEach((item) => {
const cacheAble = item.meta?.page?.cacheAble ?? pCache ?? true;
if (!cacheAble) {
this.excludeKeys.push(new RegExp(`${item.path}\\d+$`));
}
if (item.children) {
this.loadCacheConfig(item.children, cacheAble);
}
});
},
// loadCacheConfig(routes, pCache = true) {
// routes.forEach((item) => {
// const cacheAble = item.meta?.page?.cacheAble ?? pCache ?? true;
// if (!cacheAble) {
// this.excludeKeys.push(new RegExp(`${item.path}\\d+$`));
// }
// console.log(this.excludeKeys);
// if (item.children) {
// this.loadCacheConfig(item.children, cacheAble);
// }
// });
// },
...mapMutations("setting", ["correctPageMinHeight"]),
},
};
......
import TabsView from '@/layouts/tabs/TabsView'
import BlankView from '@/layouts/BlankView'
import TabsView from "@/layouts/tabs/TabsView";
import BlankView from "@/layouts/BlankView";
// import PageView from '@/layouts/PageView'
// 路由配置
const options = {
routes: [
{
path: '/jump',
name: '跳转页面',
component: () => import('@/pages/basicset/jump/jump'),
path: "/jump",
name: "跳转页面",
component: () => import("@/pages/basicset/jump/jump"),
},
{
path: '*',
name: '404',
component: () => import('@/pages/exception/404'),
path: "*",
name: "404",
component: () => import("@/pages/exception/404"),
},
{
path: '/403',
name: '403',
component: () => import('@/pages/exception/403'),
path: "/403",
name: "403",
component: () => import("@/pages/exception/403"),
},
{
path: '/',
name: '首页',
path: "/",
name: "首页",
component: TabsView,
redirect: '/jump',
redirect: "/jump",
children: [
{
path: 'basicset',
name: '基础设置',
path: "basicset",
name: "基础设置",
meta: {
icon: 'dashboard',
icon: "dashboard",
},
component: BlankView,
children: [
......@@ -45,65 +45,66 @@ const options = {
// component: () => import('@/pages/basicset/menu/list'),
// },
{
path: 'website',
name: '站点管理',
component: () => import('@/pages/basicset/site/website'),
path: "website",
name: "站点管理",
component: () => import("@/pages/basicset/site/website"),
},
{
path: 'deploy',
name: '部署模块管理',
component: () => import('@/pages/basicset/deploy/deploy'),
path: "deploy",
name: "部署模块管理",
component: () => import("@/pages/basicset/deploy/deploy"),
},
{
path: 'business',
name: '业务事项管理',
component: () => import('@/pages/basicset/business/business'),
path: "business",
name: "业务事项管理",
component: () => import("@/pages/basicset/business/business"),
},
{
path: 'addbusiness',
name: '新增事项',
component: () => import('@/pages/basicset/addbusiness/addbusiness.vue'),
meta: { invisible: true }
path: "addbusiness",
name: "新增事项",
component: () =>
import("@/pages/basicset/addbusiness/addbusiness.vue"),
meta: { invisible: true },
},
{
path: 'department',
name: '部门窗口管理',
component: () => import('@/pages/basicset/dept/department'),
path: "department",
name: "部门窗口管理",
component: () => import("@/pages/basicset/dept/department"),
},
{
path: 'personnel',
name: '工作人员管理',
component: () => import('@/pages/basicset/workman/personnel'),
path: "personnel",
name: "工作人员管理",
component: () => import("@/pages/basicset/workman/personnel"),
},
{
path: 'surface',
component: () => import('@/pages/basicset/surface/index'),
path: "surface",
component: () => import("@/pages/basicset/surface/index"),
children: [
{
path: '',
name: '皮肤管理',
component: () => import('@/pages/basicset/surface/surface'),
meta: { invisible: true }
path: "",
name: "皮肤管理",
component: () => import("@/pages/basicset/surface/surface"),
meta: { invisible: true },
},
{
path: 'addsurfacetemplate',
name: '新增皮肤m模板',
component: () => import('@/pages/basicset/surface/AddSurfaceTemplate'),
meta: { invisible: true }
path: "addsurfacetemplate",
name: "新增皮肤m模板",
component: () =>
import("@/pages/basicset/surface/AddSurfaceTemplate"),
meta: { invisible: true },
},
]
],
},
{
path: 'configurat',
name: '短信配置',
component: () => import('@/pages/basicset/sms/configurat'),
path: "configurat",
name: "短信配置",
component: () => import("@/pages/basicset/sms/configurat"),
},
{
path: 'festival',
name: '节假日配置',
component: () => import('@/pages/basicset/holiday/festival'),
path: "festival",
name: "节假日配置",
component: () => import("@/pages/basicset/holiday/festival"),
},
// {
// path: 'qrcode',
......@@ -115,556 +116,11 @@ const options = {
// name: '皮肤管理',
// component: () => import('@/pages/basicset/skins/skins'),
// },
]
],
},
// {
// path: 'reservation',
// name: '预约系统',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'reserset',
// name: '预约设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [{
// path: 'basics',
// name: '基础设置',
// component: () => import('@/pages/reservation/reserset/basics'),
// },
// {
// path: 'matter',
// name: '事项设置',
// component: () => import('@/pages/reservation/reserset/matter'),
// },
// {
// path: 'classify',
// name: '分类引导设置',
// component: () => import('@/pages/reservation/reserset/classify'),
// },
// {
// path: 'time_frame',
// name: '预约时段设置',
// component: () => import('@/pages/reservation/reserset/timeFrame'),
// },
// {
// path: 'additem',
// name: '预约时段设置',
// meta: {
// invisible: true
// },
// component: () => import('@/pages/reservation/reserset/component/addItem'),
// },
// ]
// },
// {
// path: 'realtime',
// name: '实时数据',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [{
// path: 'reserbasics',
// name: '预约实时数据',
// component: () => import('@/pages/reservation/reserbasics/reserbasics'),
// },
// ]
// },
// {
// path: 'analyse',
// name: '数据分析',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'tendency',
// name: '预约趋势研究',
// component: () => import('@/pages/reservation/analyse/tendency'),
// },
// {
// path: 'heatrank',
// name: '预约热度排名',
// component: () => import('@/pages/reservation/analyse/heatrank'),
// },
// {
// path: 'portrayal',
// name: '预约人群画像',
// component: () => import('@/pages/reservation/analyse/portrayal'),
// },
// ]
// },
// {
// path: 'ports',
// name: '接口管理',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'ports',
// name: '接口管理',
// component: () => import('@/pages/reservation/ports/ports'),
// },
// {
// path: 'basis',
// name: '新增管理',
// meta: {
// invisible: true
// },
// component: () => import('@/pages/reservation/ports/basis'),
// },
// ]
// }
// ]
// },
// {
// path: 'phsoftware',
// name: '排号软件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'phbaseset',
// name: '排号基础设置',
// component: () => import('@/pages/numeralsystem/SoftWareSet/BaseSet/Index'),
// },
// {
// path: 'vap',
// name: '集中屏轮播图/视频',
// component: () => import('@/pages/numeralsystem/SoftWareSet/VedioAndPic/Index'),
// },
// {
// path: 'numeralperson',
// name: '排号人数设置',
// component: () => import('@/pages/numeralsystem/SoftWareSet/NumeralPerson/Index'),
// },
// {
// path: 'phtheme',
// name: '排号皮肤设置',
// component: () => import('@/pages/numeralsystem/SoftWareSet/Theme/Index'),
// },
// {
// path: 'business',
// name: '业务转移',
// component: () => import('@/pages/numeralsystem/SoftWareSet/BusinessTransfer/Index'),
// },
// {
// path: 'vipset',
// name: 'VIP设置',
// component: () => import('@/pages/numeralsystem/SoftWareSet/VipSet/Index'),
// },
// {
// path: 'blacklist',
// name: '黑名单设置',
// component: () => import('@/pages/numeralsystem/SoftWareSet/BlackList/Index'),
// }
// ]
// },
// {
// path: 'phhardware',
// name: '排号硬件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'lineup',
// name: '排队机',
// component: () => import('@/pages/numeralsystem/HardWareSet/LineUp/Index'),
// },
// {
// path: 'callout',
// name: '呼叫器',
// component: () => import('@/pages/numeralsystem/HardWareSet/CallOut/Index'),
// },
// {
// path: 'windowscreen',
// name: '窗口屏',
// component: () => import('@/pages/numeralsystem/HardWareSet/WindowScreen/Index'),
// },
// {
// path: 'concentrate',
// name: '集中显示屏',
// component: () => import('@/pages/numeralsystem/HardWareSet/Concentrate/Index'),
// },
// {
// path: 'ledscreen',
// name: 'LED通屏',
// component: () => import('@/pages/numeralsystem/HardWareSet/LedScreen/Index'),
// }
// ]
// },
// {
// path: 'pjsoftware',
// name: '评价软件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'pjbaseset',
// name: '评价基础设置',
// component: () => import('@/pages/evaluatesystem/SoftWareSet/BaseSet/Index'),
// },
// {
// path: 'vap',
// name: '轮播图/视频',
// component: () => import('@/pages/evaluatesystem/SoftWareSet/VedioAndPic/Index'),
// },
// {
// path: 'theme',
// name: '评价皮肤设置',
// component: () => import('@/pages/evaluatesystem/SoftWareSet/Theme/Index'),
// }
// ]
// },
// {
// path: 'pjhardware',
// name: '评价硬件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'evaluate',
// name: '评价设备管理',
// component: () => import('@/pages/evaluatesystem/HardWareSet/Evaluate/Index'),
// }
// ]
// },
// {
// path: 'signages',
// name: '导视',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'dsbaseset',
// name: '导视基础设置',
// component: () => import('@/pages/signagesystem/BaseSet/Index'),
// },
// {
// path: 'vap',
// name: '导视轮播图/视频',
// component: () => import('@/pages/signagesystem/VedioAndPic/Index'),
// },
// {
// path: 'floor',
// name: '楼层图',
// component: () => import('@/pages/signagesystem/Floor/Index'),
// },
// {
// path: 'coordinate',
// name: '坐标设置',
// component: () => import('@/pages/signagesystem/Coordinate/Index'),
// },
// {
// path: 'dstheme',
// name: '导视皮肤设置',
// component: () => import('@/pages/signagesystem/Theme/Index'),
// },
// {
// path: 'matter',
// name: '事项设置',
// component: () => import('@/pages/signagesystem/Matter/Index'),
// },
// {
// path: 'approval',
// name: '主题式审批',
// component: () => import('@/pages/signagesystem/Approval/Index'),
// }
// ]
// },
// {
// path: 'selfservice',
// name: '自助服务',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'township',
// name: '乡镇便民中心',
// component: () => import('@/pages/selfterminal/TownCenter/Index'),
// },
// {
// path: 'pretrial',
// name: '预审工作人员',
// component: () => import('@/pages/selfterminal/PreTrialWork/Index'),
// },
// // {
// // path: 'commitment',
// // name: '承诺书设置',
// // component: () => import('@/pages/selfterminal/CommitmentSet/Index'),
// // },
// ]
// },
// {
// path: 'evaluation',
// name: '背靠背评价',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'bkbbaseset',
// name: '基础设置',
// component: () => import('@/pages/evaluation/BaseSet/Index'),
// },
// {
// path: 'options',
// name: '评价选项设置',
// component: () => import('@/pages/evaluation/Options/Index'),
// },
// {
// path: 'hall',
// name: '大厅管理',
// component: () => import('@/pages/evaluation/Hall/Index'),
// },
// ]
// },
// {
// path: 'pickup',
// name: '取件系统',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'cabinet',
// name: '取件柜设置',
// component: () => import('@/pages/pickup/Cabinet/Index'),
// },
// {
// path: 'courier',
// name: '快递员管理',
// component: () => import('@/pages/pickup/Courier/Index'),
// }
// ]
// },
// {
// path: 'ybsoftware',
// name: '样表软件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'ybbaseset',
// name: '样表事项设置',
// component: () => import('@/pages/sampleform/SoftWareSet/BaseSet/Index'),
// },
// {
// path: 'manageform',
// name: '样表管理',
// component: () => import('@/pages/sampleform/SoftWareSet/Manage/Index'),
// }
// ]
// },
// {
// path: 'ybhardware',
// name: '样表硬件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'equipment',
// name: '样表设备管理',
// component: () => import('@/pages/sampleform/HardWareSet/Equipment/Index'),
// }
// ]
// },
// {
// path: 'infosoftware',
// name: '信发软件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'xfvap',
// name: '信发轮播图/视频',
// component: () => import('@/pages/information/SoftWareSet/VedioAndPic/Index'),
// },
// {
// path: 'newsbulletin',
// name: '新闻公告',
// component: () => import('@/pages/information/SoftWareSet/NewsBulletin/Index'),
// },
// {
// path: 'scheduling',
// name: '排班信息',
// component: () => import('@/pages/information/SoftWareSet/Scheduling/Index'),
// },
// ]
// },
// {
// path: 'infohardware',
// name: '信发硬件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'infoequipment',
// name: '信息发布设备管理',
// component: () => import('@/pages/information/HardWareSet/InfoEquipment/Index'),
// }
// ]
// },
// {
// path: 'imsoftware',
// name: 'IM软件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'phrase',
// name: '短语设置',
// component: () => import('@/pages/imsystem/SoftWareSet/Phrase/Index'),
// },
// ]
// },
// {
// path: 'imhardware',
// name: 'IM硬件设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'manageim',
// name: 'IM管理',
// component: () => import('@/pages/imsystem/HardWareSet/ManageIm/Index'),
// }
// ]
// },
// {
// path: 'onething',
// name: '一件事一次办',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'itemset',
// name: '一件事事项设置',
// component: () => import('@/pages/onething/ItemSet/Index'),
// },
// {
// path: 'firsttrial',
// name: '一件事审批(初审)',
// component: () => import('@/pages/onething/FirstTrial/Index'),
// },
// {
// path: 'decision',
// name: '一件事审批(决定)',
// component: () => import('@/pages/onething/Decision/Index'),
// }
// ]
// },
// {
// path: 'mircowebsite',
// name: '微官网设置',
// meta: {
// icon: 'dashboard',
// },
// component: BlankView,
// children: [
// {
// path: 'websiteset',
// name: '首页配置',
// component: () => import('@/pages/mircowebsite/WebsiteSet/Index'),
// }
// ]
// },
// {
// path: 'parent2',
// name: '父级路由2',
// meta: {
// icon: 'form'
// },
// component: PageView,
// children: [
// {
// path: 'demo2',
// name: '演示页面2',
// component: () => import('@/pages/demo'),
// }
// ]
// },
// {
// path: 'exception',
// name: '异常页',
// meta: {
// icon: 'warning',
// },
// component: BlankView,
// children: [
// {
// path: '404',
// name: 'Exp404',
// component: () => import('@/pages/exception/404')
// },
// {
// path: '403',
// name: 'Exp403',
// component: () => import('@/pages/exception/403')
// },
// {
// path: '500',
// name: 'Exp500',
// component: () => import('@/pages/exception/500')
// }
// ]
// },
// {
// name: '验权页面',
// path: 'auth/demo',
// meta: {
// icon: 'file-ppt',
// authority: {
// permission: 'form',
// role: 'manager'
// },
// component: () => import('@/pages/demo')
// }
// }
]
}
]
}
],
},
],
};
export default options
export default options;
let path = require('path')
const webpack = require('webpack')
const ThemeColorReplacer = require('webpack-theme-color-replacer')
const {getThemeColors, modifyVars} = require('./src/utils/themeUtil')
const {resolveCss} = require('./src/utils/theme-color-replacer-extend')
const CompressionWebpackPlugin = require('compression-webpack-plugin')
let path = require("path");
const webpack = require("webpack");
const ThemeColorReplacer = require("webpack-theme-color-replacer");
const { getThemeColors, modifyVars } = require("./src/utils/themeUtil");
const { resolveCss } = require("./src/utils/theme-color-replacer-extend");
const CompressionWebpackPlugin = require("compression-webpack-plugin");
const productionGzipExtensions = ['js', 'css']
const isProd = process.env.NODE_ENV === 'production'
const productionGzipExtensions = ["js", "css"];
const isProd = process.env.NODE_ENV === "production";
const assetsCDN = {
// webpack build externals
......@@ -20,79 +20,80 @@ const assetsCDN = {
// '@antv/data-set': 'DataSet',
// 'js-cookie': 'Cookies'
// },
css: [
],
css: [],
js: [
'//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js',
'//cdn.jsdelivr.net/npm/vue-router@3.3.4/dist/vue-router.min.js',
'//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js',
'//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js',
'//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js',
'//cdn.jsdelivr.net/npm/clipboard@2.0.6/dist/clipboard.min.js',
'//cdn.jsdelivr.net/npm/@antv/data-set@0.11.4/build/data-set.min.js',
'//cdn.jsdelivr.net/npm/js-cookie@2.2.1/src/js.cookie.min.js'
]
}
"//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js",
"//cdn.jsdelivr.net/npm/vue-router@3.3.4/dist/vue-router.min.js",
"//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js",
"//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js",
"//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js",
"//cdn.jsdelivr.net/npm/clipboard@2.0.6/dist/clipboard.min.js",
"//cdn.jsdelivr.net/npm/@antv/data-set@0.11.4/build/data-set.min.js",
"//cdn.jsdelivr.net/npm/js-cookie@2.2.1/src/js.cookie.min.js",
],
};
module.exports = {
devServer: {
disableHostCheck: true,
port:8080,
port: 8080,
proxy: {
'/api': { //此处要与 /services/api.js 中的 API_PROXY_PREFIX 值保持一致
"/api": {
//此处要与 /services/api.js 中的 API_PROXY_PREFIX 值保持一致
target: process.env.VUE_APP_API_BASE_URL,
changeOrigin: true,
pathRewrite: {
'^/api': ''
"^/api": "",
},
// cookieDomainRewrite: 'localhost',
}
}
},
},
},
pluginOptions: {
'style-resources-loader': {
preProcessor: 'less',
"style-resources-loader": {
preProcessor: "less",
patterns: [path.resolve(__dirname, "./src/theme/theme.less")],
}
},
},
configureWebpack: config => {
configureWebpack: (config) => {
config.entry.app = ["babel-polyfill", "whatwg-fetch", "./src/main.js"];
config.performance = {
hints: false
}
hints: false,
};
config.plugins.push(
new ThemeColorReplacer({
fileName: 'css/theme-colors-[contenthash:8].css',
fileName: "css/theme-colors-[contenthash:8].css",
matchColors: getThemeColors(),
injectCss: true,
resolveCss
resolveCss,
})
)
);
// Ignore all locale files of moment.js
// config.plugins.push(new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/))
// 生产环境下将资源压缩成gzip格式
if (isProd) {
// add `CompressionWebpack` plugin to webpack plugins
config.plugins.push(new CompressionWebpackPlugin({
algorithm: 'gzip',
test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
threshold: 10240,
minRatio: 0.8
}))
config.plugins.push(
new CompressionWebpackPlugin({
algorithm: "gzip",
test: new RegExp("\\.(" + productionGzipExtensions.join("|") + ")$"),
threshold: 10240,
minRatio: 0.8,
})
);
}
// if prod, add externals
if (isProd) {
config.externals = assetsCDN.externals
config.externals = assetsCDN.externals;
}
},
chainWebpack: config => {
chainWebpack: (config) => {
// 生产环境下关闭css压缩的 colormin 项,因为此项优化与主题色替换功能冲突
if (isProd) {
config.plugin('optimize-css')
.tap(args => {
args[0].cssnanoOptions.preset[1].colormin = false
return args
})
config.plugin("optimize-css").tap((args) => {
args[0].cssnanoOptions.preset[1].colormin = false;
return args;
});
}
// 生产环境下使用CDN
// if (isProd) {
......@@ -108,14 +109,14 @@ module.exports = {
less: {
lessOptions: {
modifyVars: modifyVars(),
javascriptEnabled: true
}
}
}
javascriptEnabled: true,
},
},
},
},
publicPath: './',
publicPath: "./",
// publicPath: process.env.VUE_APP_PUBLIC_PATH,
outputDir: 'dist',
assetsDir: 'static',
productionSourceMap: false
}
outputDir: "dist",
assetsDir: "static",
productionSourceMap: false,
};
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment