分模块打包目的
子项目配置
recordSearchModule
asset
common
components
router
store
views
页面
login.vue 根据子项目情况可以共用项目的login页面
App.vue
main.js
- 在config/project.config.js中添加子项目运行及打包配置项
recordSearchModule: {
pages: {
index: {
entry: "src/recordSearchModule/main.js",
template: "public/index.html",
filename: "index.html"
}
},
}
"serve": "vue-cli-service serve",
"serve:record": "cross-env VUE_APP_PROJECT_NAME=recordSearchModule vue-cli-service serve",
"build": "vue-cli-service build",
"build:customer": "cross-env VUE_APP_PROJECT_NAME=customerCheckModule vue-cli-service build",
- vue.config.js中配置子项目路径别名及添加子项目运行配置
const path = require("path");
function resolve(dir) {
return path.join(__dirname, dir);
}
let projectName = process.env.VUE_APP_PROJECT_NAME;
const project = config[projectName] || {};
module.exports = {
chainWebpack: (config) => {
config.resolve.alias
.set("recordPage", resolve("./src/recordSearchModule"))
.set("customerCheckPage", resolve("./src/customerCheckModule"))
},
...project
}
const recordRoutes = [
{
path: '/taskRecord',
component: (resolve) =>
require([
'recordPage/views/recordSearch/recordSearchList/taskRecord'
], resolve),
}
]
const router = new Router({
mode: 'history',
routes: [
{
path: '/',
component: (resolve) => require(['@/views/login'], resolve),
name: 'Login'
},
{
path: '*',
name: '404',
hidden: true,
component: (resolve) => require(['@/views/404'], resolve)
},
{
path: '/nav',
component: (resolve) => require(['recordPage/views/nav'], resolve),
name: 'Index',
children: recordRoutes
},
]
});
- main.js将process.env.VUE_APP_PROJECT_NAME挂载到Vue实例
const projectName = process.env.VUE_APP_PROJECT_NAME;
Object.assign(Vue.prototype, {
$projectName: projectName
})