Skip to content

构建输出与兼容

本页说明 产物输出目录JS 输出格式/兼容策略。它们直接决定:

  • dist/ 的目录结构
  • 是否输出 CommonJS 或 ESM
  • 是否启用 ES5 兼容降级
  • 是否压缩代码、是否生成 sourcemap

输出目录来源

weapp-vite 的输出目录默认由 project.config.json(或多端配置)中的 miniprogramRoot 决定:

  • build.outDir 未显式配置weapp-vite 会将 build.outDir 设置为 miniprogramRoot
  • build.outDir 已配置,则以你的配置为准。

NOTE

当启用 weapp.multiPlatformminiprogramRoot 为相对路径 dist 时,输出会自动调整为 dist/<platform>/dist,以避免不同平台互相覆盖。

weapp.jsFormat

  • 类型'cjs' | 'esm'
  • 默认值'cjs'
  • 作用:控制 Rolldown/Rollup 的输出格式。
ts
import { defineConfig } from 'weapp-vite/config'

export default defineConfig({
  weapp: {
    jsFormat: 'esm',
  },
})

行为说明:

  • cjs(默认):输出 CommonJS,兼容性最好。
  • esm:输出 ESM;在微信开发者工具中建议开启「ES6 转 ES5」以降低预览差异。

WARNING

如果你手动把 build.target 设为 ES2015 以下,会直接报错;只有启用 weapp.es5 才允许降级到 ES5。

weapp.es5

  • 类型boolean
  • 默认值false
  • 作用:在输出 CommonJS 的基础上,用 @swc/core 进行 ES5 降级
ts
import { defineConfig } from 'weapp-vite/config'

export default defineConfig({
  weapp: {
    jsFormat: 'cjs',
    es5: true,
  },
})

使用须知:

  • 仅支持 jsFormat: 'cjs',与 esm 同用会直接报错。
  • 需要安装 @swc/corepnpm add -D @swc/core
  • 开启后,build.target 会被强制收敛到 es2015,再由 SWC 降级到 ES5。

build.minifybuild.sourcemap

weapp-vite 直接复用 Vite 的 build 配置:

  • build.minify:是否压缩代码(默认生产环境开启)。
  • build.sourcemap:是否输出 sourcemap(可为 true | false | 'inline' | 'hidden')。

如果你希望 打包产物不压缩且生成 sourcemap,可以这样配置:

ts
import { defineConfig } from 'weapp-vite/config'

export default defineConfig({
  build: {
    minify: false,
    sourcemap: true,
  },
})

也可以通过 CLI 临时覆盖:

bash
weapp-vite build --minify false --sourcemap

TIP

以上配置作用于你的项目产物(页面/组件/公共 chunk)。
若还需要控制 miniprogram_npm 中依赖包的压缩与 sourcemap,请看下方 npm 配置页说明。


完成配置后建议重新执行 pnpm build,并在开发者工具内验证预览与上传流程。

Released under the MIT License.