---
title: build 构建/预览
summary: 介绍 ray build 命令的用法、配置及各项选项说明，用于生成生产环境部署代码。
questions:
  - 如何配置 Tuya MiniApp IDE 自动执行 build？
  - ray build 的 source 和 output 选项默认值是什么？
  - mini 和 no-mini 选项的区别是什么？
  - 为什么 dev 模式下的压缩不等同于 build 模式？
  - target 支持哪些平台？
  - build 类型 app 和 component 有什么区别？
  - transform-mode 在什么情况下有效？
  - 如何开启 analyze 分析？
---

# `build` 构建/预览

生成可用于生产环境部署的代码。

## Tuya MiniApp IDE 自动化执行 build

Tuya MiniApp IDE 可配置打包时自动执行 build 的功能，不需要手动在控制台执行 `ray build`。 `project.tuya.json` 中配置 `devMode: ray`，即可在上传项目时关联`ray build`。

```json
{
  "devMode": "ray"
}
```

## 命令说明

`ray build ./my-app`

> **注意**：其中 `my-app` 表示项目所在目录。

```bash
Usage: ray-build [options] [cwd]

执行构建应用/组件

Options:
  --source <folder>        源码目录，默认值 src
  --output <folder>        产物目录
  --mini                   启用压缩构建产物，默认值 true
  --no-mini                禁用压缩构建产物
  -t --target <target>     目标平台
  -a --analyze             开启 analyze 分析，默认值 false
  --type <type>            构建类型，可选值 app 和 component，默认值 app
  --transform-mode <mode>  组件转换类型，可选值 auto 和 pure，默认值 auto
  -h, --help               Display help for this command
```

## Options

### source

项目源码目录，默认为 `src`。

### output

构建产物生成目录。

### mini

开启后会将生成文件进行一定程度的压缩，会牺牲一定的编译时间。由于Tuya MiniApp Tool 的限制，启用压缩后一般可符合上传要求。`build` 模式下默认开启 `mini`。

> **注意**：
> `dev` 模式下的压缩不等同于 `build` 模式，实际应用体积大小应以 `build` 结果为准。

### no-mini

禁用压缩构建产物。

### target

目标平台，可选值 `web`、`wechat`、`tuya`、`ios` 和 `android`。

### analyze

启用 `analyze` 可视化分析。详细信息，参考 [Webpack Bundle Analyzer](https://www.npmjs.com/package/webpack-bundle-analyzer)。

### type

构建类型，可选值 `app` 和 `component`。

## transform-mode

组件转换类型，仅在类型为 `component` 下有效。可选值 `auto` 和 `pure`。
