全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 5 分钟 ✍️ juanwangdev

SSR 构建配置

SSR 构建需要特殊配置,处理依赖外部化和构建输出。

SSR 配置选项

JavaScript
export default defineConfig({
  ssr: {
    // 不外部化的依赖
    noExternal: ['vue-router', 'pinia'],
    // 外部化的依赖
    external: ['express', 'fs-extra'],
    // 目标环境
    target: 'node'
  }
})

配置选项说明

选项说明
noExternal不外部化,打包进服务端产物
external外部化,不打包
target服务端目标环境

注意:noExternal 的依赖会被打包处理,external 的依赖保持 require/import 引用。

依赖外部化策略

JavaScript
export default defineConfig({
  ssr: {
    // 默认外部化所有 node_modules
    noExternal: [
      // 特定依赖不外部化
      'vue-router',
      // 正则匹配
      /^@company\//
    ]
  }
})

SSR 构建命令

Bash
# 构建客户端
vite build --outDir dist/client

# 构建服务端
vite build --ssr --outDir dist/server

双端构建产物

JavaScript
dist/
├── client/         # 客户端构建产物
│   ├── index.html
│   └── assets/
└── server/         # 服务端构建产物
    └── server.js

SSR 模式判断

JavaScript
// 判断 SSR 环境
if (import.meta.env.SSR) {
  // 服务端代码
} else {
  // 客户端代码
}

构建配置示例

text
export default defineConfig({
  build: {
    rollupOptions: {
      input: {
        // 多入口配置
        client: '/src/entry-client.js',
        server: '/src/entry-server.js'
      }
    }
  },
  ssr: {
    target: 'node',
    noExternal: ['vue', 'vue-router']
  }
})

要点总结

  • ssr.noExternal 控制依赖打包
  • 双端构建分别输出 client/server
  • import.meta.env.SSR 判断环境
  • target 指定服务端运行环境

📝 发现内容有误?点击此处直接编辑

← 上一篇 文件监听与忽略
下一篇 → SSR 框架集成概述
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库