技術方案:手動輸入不同的命令,啟動不同項目。實現這種能力本篇文章是通過不同路由劃分,進而實現不同項目的劃分。所以簡單來說就是通過輸入不同命令行在webpack中找到不同項目的路由,進而打不同項目的包,實現項目隔離。
一、命令行構造
"serve:aaa": "cross-env VUE_APP_SYS=aaa VUE_APP_IGNORE_SYS=bbb vue-cli-service serve --open",
cross-env庫介紹
cross-env 是一個用來跨平臺地設置環境變量的 Node.js 庫。它的主要目的是解決不同操作系統(如 Windows 和 Unix 系統如 macOS/Linux)在命令行中設置環境變量時語法不一致的問題。
二、Webpack改造
plugins: [new webpack.IgnorePlugin({checkResource (resource) {const ignoreSys = process.env.VUE_APP_IGNORE_SYS.split(',')for(const sys of ignoreSys) {return resource.includes(`@/router/${sys}/index`)}return false},})]
使用IgnorePlugin插件,把想要的項目總路由引入
三、路由改造并導出
// 根據指定不同的系統加載不同系統路由
switch (process.env.VUE_APP_SYS) {case 'aaa':routerObj = require('@/router/aaa/index')breakcase 'bbb':routerObj = require('@/router/bbb/index')breakdefault:throw new Error('未指定系統類型,請設置 VUE_APP_SYS 環境變量')
}export default routerObj.router
根據輸入命令的不同值,引入不同路由文件。
下面是aaa路由目錄下的組織方式