当前位置:首页 > VUE

vue 多站点 实现

2026-01-18 16:43:19VUE

Vue 多站点实现方案

方案一:多入口配置

通过配置多个入口文件实现多站点,适用于站点间差异较大的场景。

  1. 修改 vue.config.js 配置

    module.exports = {
    pages: {
     siteA: {
       entry: 'src/siteA/main.js',
       template: 'public/siteA.html',
       filename: 'siteA.html'
     },
     siteB: {
       entry: 'src/siteB/main.js',
       template: 'public/siteB.html',
       filename: 'siteB.html'
     }
    }
    }
  2. 目录结构建议

    src/
    siteA/
     main.js
     App.vue
     components/
    siteB/
     main.js
     App.vue
     components/
    public/
    siteA.html
    siteB.html

方案二:动态路由+微前端

适用于站点间共享大部分功能的场景,通过路由区分不同站点。

  1. 主应用配置

    const routes = [
    {
     path: '/siteA/:pathMatch(.*)*',
     component: () => import('@/views/SiteA.vue')
    },
    {
     path: '/siteB/:pathMatch(.*)*',
     component: () => import('@/views/SiteB.vue')
    }
    ]
  2. 使用微前端架构

    vue 多站点 实现

    
    import { loadMicroApp } from 'qiankun'

const siteAApp = loadMicroApp({ name: 'siteA', entry: '//localhost:7101', container: '#siteA-container' })


#### 方案三:环境变量控制
通过环境变量区分不同站点,适合开发阶段快速切换。

1. 创建环境文件
`.env.siteA`

VUE_APP_SITE=siteA


`.env.siteB`

VUE_APP_SITE=siteB

vue 多站点 实现


2. 代码中动态加载配置
```javascript
const siteConfig = require(`./configs/${process.env.VUE_APP_SITE}.js`)

方案四:SSR多站点

使用Nuxt.js等SSR框架实现服务端多站点渲染。

  1. Nuxt配置示例

    export default {
    buildModules: [
     ['@nuxtjs/router', {
       path: 'router',
       fileName: `${process.env.SITE_NAME}.js`
     }]
    ]
    }
  2. 启动命令配置

    {
    "scripts": {
     "dev:siteA": "SITE_NAME=siteA nuxt",
     "dev:siteB": "SITE_NAME=siteB nuxt"
    }
    }

部署注意事项

  1. Nginx配置示例
    
    server {
    listen 80;
    server_name siteA.com;
    root /path/to/dist/siteA;
    }

server { listen 80; server_name siteB.com; root /path/to/dist/siteB; }


2. CI/CD流水线配置
```yaml
jobs:
  deploy-siteA:
    variables:
      SITE_NAME: "siteA"
    script:
      - npm run build:$SITE_NAME
      - scp -r dist/$SITE_NAME user@server:/path/to/deploy

以上方案可根据实际项目需求组合使用,建议小型项目采用方案一或方案三,大型复杂系统考虑方案二或方案四。

标签: 站点vue
分享给朋友:

相关文章

vue列表实现

vue列表实现

Vue 列表实现方法 使用 v-for 指令 v-for 是 Vue 中用于渲染列表的核心指令,基于数据源动态生成 DOM 元素。语法格式为 item in items 或 (item, index)…

vue实现滑块

vue实现滑块

Vue 实现滑块组件的方法 使用原生 HTML 和 Vue 指令 通过 Vue 的 v-model 和事件监听实现基础滑块功能。创建一个包含 input 元素的组件,类型设置为 range,并绑定到…

vue实现类别

vue实现类别

Vue 实现类别的几种方法 在 Vue 中实现类别功能可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind:class 动态绑定类名 通过对象语法或数组语法动态绑定类名,根据条件添加或移…

vue滚动实现

vue滚动实现

Vue 滚动实现方法 使用原生滚动 在 Vue 中可以通过 ref 获取 DOM 元素,调用原生滚动方法实现滚动效果。适用于简单场景。 <template> <div ref=…

vue实现tabs

vue实现tabs

Vue实现Tabs组件的方法 使用动态组件和v-for指令 在Vue中创建Tabs组件可以通过动态组件和v-for指令实现。定义一个包含tab标题和内容的数组,使用v-for渲染tab标题,并通过点击…

vue实现刷新

vue实现刷新

Vue 实现页面刷新的方法 在Vue中实现页面刷新可以通过多种方式,以下是几种常见的方法: 使用 window.location.reload() 通过调用浏览器的原生方法强制刷新当前页面: me…