Vue 一个项目实现多个入口文件打包(单页面打包)

定义打包变量

在 .env.development 和 .env.production 文件中定义打包变量。我这里需要打包为两个入口文件,代码如下:

# 需要打包的页面  打包单页面填页面名称JsonData 打包全部all

VITE_BUILD_PAGE = 'all'
# VITE_BUILD_PAGE = 'JsonData'

设置路由白名单

在 permission.js 文件中设置,代码如下:

let whiteList = []
const setWhiteList = () => {
  let buildPage = import.meta.env.VITE_BUILD_PAGE
  if(buildPage === 'all') {
    whiteList = ['/login', '/landing', '/error', '/notfound', '/access','/StructureSetting','/DBList'];
  } else {
    whiteList = ['/', '/error', '/notfound'];
  }
}
setWhiteList()

路由文件处理

在 router/index.vue 中分别做处理。

// allRoutes 是所有路由,jsonDataRoutes 是 jsonData 打包需要的路由
const setRouter = () => {
  let buildPage = import.meta.env.VITE_BUILD_PAGE
  if(buildPage === 'all') {
    return
  } else {
    allRoutes = []
    let arr = []
    jsonDataRoutes.map((v, i) => {
      if(v.path) {
        let buildPagePath = '/' + buildPage
        if(v.path === '/error' || v.path === '/:pathMatch(.*)*' || v.path === buildPagePath) {
          if(v.path === buildPagePath) {
            v.path = '/'
          }
          arr.push(v)
        } else {
          return
        }
      }
    })
    jsonDataRoutes= arr
  }
}
setRouter()

export const copyAllRoutes = allRoutes;
export const copyJsonDataRoutes = jsonDataRoutes;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值