当前位置:首页 > 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. 使用微前端架构

    
    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


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 表格实现

Vue 表格实现方法 在 Vue 中实现表格功能可以通过多种方式完成,以下介绍几种常见的方法: 使用原生 HTML 表格 最简单的表格可以通过 Vue 模板中的原生 HTML 表格元素实现: &l…

vue 移动端实现签名

vue 移动端实现签名

Vue 移动端签名实现方法 在移动端实现签名功能,可以通过HTML5的Canvas结合触摸事件完成。以下是具体实现步骤: 使用Canvas绘制签名 安装vue-signature-pad插件或直接使…

vue使用vr实现标注

vue使用vr实现标注

Vue 中使用 VR 实现标注的方法 在 Vue 项目中结合 VR 技术实现标注功能,可以通过 WebXR 和 Three.js 等库实现。以下为具体实现方法: 安装依赖 确保项目中已安装 Thr…

vue里实现增删改查

vue里实现增删改查

在Vue中实现增删改查 数据初始化 在Vue组件的data中定义初始数据和表单绑定的变量: data() { return { items: [ { id: 1, name…

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现一个tab栏

vue实现一个tab栏

Vue 实现 Tab 栏 基础实现(选项式 API) <template> <div class="tab-container"> <div class="t…