import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import singleSpaVue from "single-spa-vue";
Vue.config.productionTip = false;
const vueLifecycles = singleSpaVue({
Vue,
appOptions: {
render(h) {
return h(App);
},
router,
},
});
if ("单独开发") {
new Vue({
router,
render: (h) => h(App),
}).$mount("#app");
}
console.log("vueLifecycles", vueLifecycles);
export const bootstrap = vueLifecycles.bootstrap;
export const mount = vueLifecycles.mount;
export const unmount = vueLifecycles.unmount;
const StatsPlugin = require("stats-webpack-plugin");
const pkg = require("./package.json");
// 线上build部署接入 yarn build
let publicPath = `/subs/${pkg.microName}`;
// 本地dev接入 yarn single
if (process.env.NODE_ENV === "development") {
publicPath = `/`;
}
module.exports = {
outputDir: `dist/subs/${pkg.microName}`,
publicPath: publicPath, // 要部署的公共地址
lintOnSave: false,
devServer: {
port: 8889, // 本地调试配置端口
headers: {
"Access-Control-Allow-Origin": "*", // 用于本地调试时允许跨域请求文件
},
},
configureWebpack: {
output: {
filename: `${pkg.microName}.${Date.now()}.[hash:6].js`, // 入口文件 输出文件名
chunkFilename: `${pkg.microName}.chunk.[chunkhash:8].js`, // 非入口文件
library: pkg.microName, // 输出的承接变量名
libraryTarget: "umd",
},
plugins: [
// mainfest文件,用于展示打包信息 按需加载js
new StatsPlugin("manifest.json", {
chunkModules: false,
entrypoints: true,
source: false,
chunks: false,
modules: false,
assets: false,
children: false,
exclude: [/node_modules/],
}),
],
optimization: {
splitChunks: false,
},
},
};