1. Создать два разных entryPoin: src/admin.js, src/public.js
2. Создать два разных entryPoint html: admin.html, public.html
2. Задать два разных скрипта для запуска приложения для разработки admin или public c установкой переменной в env того, какой entry point запущен
packadge.json
"scripts": {
"dev:public": "cross-env VUE_APP_ENTRY_POINT=public vue-cli-service serve --entry src/public.js",
"dev:admin": "cross-env VUE_APP_ENTRY_POINT=admin vue-cli-service serve --entry src/admin.js",
"build": "vue-cli-service build",
// ...
},
vue.config.js
const config = {
//...,
pages: {
admin: {
entry: 'src/admin.js',
template: 'public/admin.html',
//...
},
public: {
entry: 'src/public.js',
template: 'public/public.html',
//...
},
},
//...,
devServer: {
historyApiFallback: {
rewrites: [{ from: /./, to: `/${process.env.VUE_APP_ENTRY_POINT}.html` }],
},
//...
},
}
В режиме dev запускать либо разработку admin либо public, команда build собирать будет и то и другое сразу. Называется этот режим Multi Page Aplication.