Skip to content

快速开始

安装

全局安装

bash
npm install -g robuild

项目安装

bash
npm install --save-dev robuild

使用 npx

bash
npx robuild ./src/index.ts

基本使用

1. 创建项目结构

bash
mkdir my-package
cd my-package
npm init -y

创建基本的项目结构:

my-package/
├── package.json
├── src/
│   ├── index.ts
│   └── utils.ts
└── tsconfig.json

2. 编写源码

src/index.ts

typescript
export { add, multiply } from './utils'

export function greet(name: string): string {
  return `Hello, ${name}!`
}

src/utils.ts

typescript
export function add(a: number, b: number): number {
  return a + b
}

export function multiply(a: number, b: number): number {
  return a * b
}

3. 构建项目

bash
# 使用 npx
npx robuild ./src/index.ts

# 或使用全局安装的 robuild
robuild ./src/index.ts

4. 查看构建结果

构建完成后,会在 dist/ 目录生成以下文件:

dist/
├── index.mjs          # 主文件
├── index.d.mts        # 类型声明文件
└── _chunks/           # 代码分割文件(如果有)

5. 配置 package.json

json
{
  "name": "my-package",
  "version": "1.0.0",
  "type": "module",
  "main": "./dist/index.mjs",
  "types": "./dist/index.d.mts",
  "exports": {
    ".": {
      "import": "./dist/index.mjs",
      "types": "./dist/index.d.mts"
    }
  },
  "scripts": {
    "build": "robuild ./src/index.ts",
    "dev": "robuild ./src/index.ts --stub"
  }
}

高级示例

多入口构建

bash
# 构建多个入口文件
npx robuild ./src/index.ts,./src/cli.ts

Transform 模式

bash
# 转换整个目录
npx robuild ./src/runtime/:./dist/runtime

开发模式

bash
# 使用 stub 模式,快速开发
npx robuild ./src/index.ts --stub

配置文件

创建 build.config.ts 文件进行更精细的配置:

typescript
import { defineConfig } from 'robuild'

export default defineConfig({
  entries: [
    {
      type: 'bundle',
      input: ['./src/index.ts', './src/cli.ts'],
      outDir: './dist',
      minify: false,
      dts: true,
    },
    {
      type: 'transform',
      input: './src/runtime',
      outDir: './dist/runtime',
      minify: false,
    },
  ],
})

常见问题

Q: 如何处理依赖?

robuild 会自动处理依赖关系,将外部依赖标记为 external,不会打包进最终文件。

Q: 如何生成类型声明文件?

默认情况下,robuild 会自动生成 TypeScript 声明文件。可以通过 dts: false 禁用。

Q: 如何压缩代码?

在配置中设置 minify: true 或使用 'dce-only' 进行死代码消除。

Q: 如何处理 shebang?

robuild 内置了 shebang 处理插件,会自动保留并设置可执行权限。

下一步

Released under the MIT License.