perf: Pack on demand

This commit is contained in:
xiaoxian521
2021-04-21 23:20:14 +08:00
parent 62ad9e6f40
commit 679cfae7fb
18 changed files with 677 additions and 226 deletions

View File

@@ -1,70 +1,58 @@
import { createApp } from "vue"
import App from "./App.vue"
import router from "./router"
import store from "./store"
import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
// 内置ElementPlus
import ElementPlus from "element-plus"
import "element-plus/lib/theme-chalk/index.css"
// 内置vxe-table
import "font-awesome/css/font-awesome.css"
import VXETable from "vxe-table"
import "vxe-table/lib/style.css"
// 内置国际化语言包
import { createI18n } from "vue-i18n"
import ch from "./locales/ch.json"
import en from "./locales/en.json"
const i18n = createI18n({
locale: 'ch', //默认使用中文
messages: {
ch,
en
}
})
import { useElementPlus } from "../src/plugins/element-plus";
import { useTable } from "../src/plugins/vxe-table";
import { usI18n } from "../src/plugins/i18n";
// 导入公共样式
import "./style/index.scss"
import "./style/index.scss";
// 导入字体图标
import "./assets/iconfont/iconfont.js"
import "./assets/iconfont/iconfont.css"
import "./assets/iconfont/iconfont.js";
import "./assets/iconfont/iconfont.css";
import { setConfig, getConfig } from "./config"
import axios from "axios"
import { setConfig, getConfig } from "./config";
import axios from "axios";
const app = createApp(App)
app.config.globalProperties.$config = getConfig()
const app = createApp(App);
app.config.globalProperties.$config = getConfig();
// 获取项目动态全局配置
export const getServerConfig = async (): Promise<any> => {
return axios({
baseURL: "",
method: "get",
url: process.env.NODE_ENV === 'production' ? "/manages/serverConfig.json" : "/serverConfig.json"
}).then(({ data: config }) => {
let $config = app.config.globalProperties.$config
// 自动注入项目配置
if (app && $config && typeof config === "object") {
$config = Object.assign($config, config)
app.config.globalProperties.$config = $config
// 设置全局配置
setConfig($config)
}
// 设置全局baseURL
app.config.globalProperties.$baseUrl = $config.baseURL
return $config
}).catch(() => { throw "请在public文件夹下添加serverConfig.json配置文件" })
}
url:
process.env.NODE_ENV === "production"
? "/manages/serverConfig.json"
: "/serverConfig.json",
})
.then(({ data: config }) => {
let $config = app.config.globalProperties.$config;
// 自动注入项目配置
if (app && $config && typeof config === "object") {
$config = Object.assign($config, config);
app.config.globalProperties.$config = $config;
// 设置全局配置
setConfig($config);
}
// 设置全局baseURL
app.config.globalProperties.$baseUrl = $config.baseURL;
return $config;
})
.catch(() => {
throw "请在public文件夹下添加serverConfig.json配置文件";
});
};
getServerConfig().then(() => {
app
.use(store)
.use(router)
.use(i18n)
.use(ElementPlus)
.use(VXETable)
.mount('#app')
})
.use(store)
.use(useElementPlus)
.use(useTable)
.use(usI18n)
.mount("#app");
});