增加轻量启动模式,只加载相关项目的代码,来减少构建,启动,刷新,调试所需要的时间

This commit is contained in:
aixianling
2023-10-10 16:46:43 +08:00
parent 5b09630e62
commit de994686f7
4 changed files with 40 additions and 83 deletions

View File

@@ -44,7 +44,7 @@ export default {
let reg = new RegExp(`.*${this.searchApp?.replace(/-/g,'')||''}.*`, 'gi')
return (this.apps || []).filter(e => !this.searchApp || reg?.test(e.name) || reg?.test(e.label)).map(e => {
if (/\/project\//.test(e.path)) {
e.project = e.path.replace(/.*project\/([^\/]+)\/.+/, '$1')
e.project = process.env.VUE_APP_SCOPE || e.path.replace(/.*project\/([^\/]+)\/.+/, '$1')
} else if (/\/core\//.test(e.path)) {
e.project = "core"
}
@@ -200,7 +200,7 @@ export default {
}
}
:deep( .ai-menu ){
:deep( .ai-menu ) {
padding-left: 0;
flex: 1;
min-height: 0;
@@ -214,7 +214,7 @@ export default {
}
}
:deep( .searchApp ){
:deep( .searchApp ) {
display: flex;
align-items: center;
height: 44px;

View File

@@ -2,7 +2,6 @@ import store from "../store";
import {waiting} from "../utils";
import appEntry from "../views/appEntry";
import router from "./router";
// import mods from "../modules"
export default {
routes: () => store.state.apps,
@@ -11,16 +10,26 @@ export default {
store.commit("cleanApps")
// 自动化本工程应用
waiting.init({innerHTML: '应用加载中..'})
this.esm = {
all: {
packages: require.context('../../packages/', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy'),
project: require.context('../../project/', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy')
},
dv: {
packages: require.context('../../packages/bigscreen', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy')
}
}[process.env.VUE_APP_SCOPE || "all"]
const startTime = new Date().getTime()
let startTime = new Date().getTime()
switch (process.env.VUE_APP_SCOPE) {
case 'dv':
this.esm = {
packages: require.context('../../packages/bigscreen', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy')
}
break
case 'fengdu':
this.esm = {
project: require.context('../../project/fengdu', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy')
}
break
default:
this.esm = {
packages: require.context('../../packages/', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy'),
project: require.context('../../project/', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy')
}
}
console.log('模块引用用了%s秒', (new Date().getTime() - startTime) / 1000)
startTime = new Date().getTime()
this.loadApps().finally(() => {
console.log('模块加载用了%s秒', (new Date().getTime() - startTime) / 1000)
waiting.close()
@@ -53,6 +62,6 @@ export default {
return store.commit("addApp", addApp)
} else return 0
}).catch(err => console.log(err))))
return Promise.all(Object.entries(this.esm).map(([root, mods]) => promise(mods, root)))
return Promise.all(Object.entries(this.esm).map(([root, mods]) => promise(mods, root))).catch(console.error)
}
}