# 创建自定义脚本

URL: https://caijiao.org/bun/script/custom
Source: docs/bun/script/custom.md
Description: 本章节介绍了如何创建和使用 Bun 自定义脚本，帮助开发者自动化常见任务，提高开发效率。

[Bun](/bun/) 允许开发者通过自定义脚本来自动化常见的开发任务，增强项目的灵活性和效率。自定义脚本可以是任何 [JavaScript](/javascript/)、TypeScript 文件，或者简单的命令行任务。

## 1. 创建脚本文件

首先，你可以在项目的根目录下创建一个新的 JavaScript 或 TypeScript 脚本文件。例如，创建一个名为 `custom-task.js` 的文件，内容如下：

```javascript
console.log("This is a custom script!");
````

该脚本简单地输出一条消息。你可以在脚本中加入更复杂的逻辑，例如自动化构建、发布、清理任务等。

## 2. 在 package.json 中定义脚本

在 `package.json` 文件的 `scripts` 部分，定义一个自定义脚本的命令。例如：

```json
{
  "scripts": {
    "custom-task": "bun run custom-task.js"
  }
}
```

这样就可以通过以下命令来执行自定义脚本：

```bash
bun run custom-task
```

## 3. 使用命令行参数

你可以在自定义脚本中使用命令行参数。例如，修改 `custom-task.js` 脚本，使用传递的参数：

```javascript
const args = process.argv.slice(2);
console.log(`Arguments received: ${args.join(', ')}`);
```

然后，在运行时传递参数：

```bash
bun run custom-task --flag true --env production
```

脚本将输出：

```bash
Arguments received: --flag, true, --env, production
```

## 4. 创建更复杂的脚本

除了简单的 `console.log`，你还可以在脚本中使用更多复杂的操作，比如构建任务、测试或文件操作。比如，创建一个 `build.js` 脚本，执行构建命令：

```javascript
import { execSync } from 'child_process';

console.log("Starting build process...");
execSync('bun build', { stdio: 'inherit' });
console.log("Build complete!");
```

你可以通过 `bun run build.js` 来执行该脚本，自动执行构建任务。

## 5. 总结

通过创建自定义脚本，Bun 可以帮助开发者自动化项目中的各种任务，减少重复性工作，提高工作效率。无论是简单的文件操作，还是复杂的构建和发布任务，Bun 都能提供灵活的解决方案。
