当前位置:首页 > 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; }

vue 多站点 实现


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中处理数据过滤的理想选择,它们基于响应式依赖进行缓存,只有在相关依赖发生改…

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue实现海报

vue实现海报

Vue 实现海报生成方案 使用 html2canvas 库 html2canvas 是一个将 HTML 元素转换为 Canvas 的库,适合将 Vue 组件渲染为海报图片 安装依赖: npm in…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…

vue实现api

vue实现api

Vue 实现 API 调用 在 Vue 中调用 API 通常涉及使用 axios 或 fetch 发送 HTTP 请求,并结合 Vue 的响应式特性管理数据。以下是常见的实现方式: 安装 axios…

vue 分页 实现

vue 分页 实现

Vue 分页实现方法 使用第三方库(如 Element UI) Element UI 提供了现成的分页组件 el-pagination,适合快速集成。 安装 Element UI: npm ins…