---
sidebar_position: 2
---

# 如何使用生成器插件

`@modern-js/create` 提供了 plugin 参数用于声明使用的生成器插件。

你可直接执行下面命令使用生成器插件：

```bash
npx @modern-js/create --plugin <pluginName>
```

plugin 参数支持声明多次，代表同时使用多个生成器插件。

## 生成器插件分类

生成器插件分为两种：

1. 扩展工程方案：直接对默认提供的三大工程方案进行定制化

2. 创建工程方案场景：基于默认的三大工程方案创建对应的工程方案场景

### 类型定义

生成器插件的分类通过 `package.json` 中的 `meta` 信息提供。

#### 扩展工程方案

```json
{
    "meta": {
        "extend": "mwa" // 三个工程方案分别对应 mwa、module、 monorepo
    }
}
```

#### 创建工程方案场景

```json
{
    "meta": {
        "key": "new_solution",
        "name": "新工程方案",
        "type": "mwa" // 除了三大工程方案，这里类型还支持自定义(custom)类型，后面会详细介绍 
    }
}
```

### 执行时机

不同类型的定制工程方案的执行时机是不同的。

#### 扩展工程方案

扩展工程方案类型的生成器插件会在选择对应 extend 的工程方案后按照 plugin 参数的声明顺序依次执行。

#### 创建工程方案场景

创建工程方案场景的生成器插件会在选择对应类型的工程方案之后出现选择场景的选项，选项列表包括当前默认的工程方案场景和插件定义的工程方案场景，选择对应的场景，将会执行对应的生成器插件。
