> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# 打包 Copilot CLI

> 说明如果想严格管理 Copilot CLI 的版本，如何把它作为 npm 依赖打包进 Laravel 项目。

## 在项目中包含 Copilot CLI

如果想严格管理 Copilot CLI 的版本，可以把它作为 npm 包包含在项目中。

一般来说，在部署时另外安装 Copilot CLI 的方式就足够了。
另请参考 [在 Laravel Cloud 中使用](/zh/packages/laravel-copilot-sdk/laravel-cloud) 和 [在 GitHub Actions 中使用](/zh/packages/laravel-copilot-sdk/github-actions)。

## 前置条件

Laravel 项目中有 `package.json`，并且生产服务器也有 Node.js 运行环境，可以安装 npm 包。

## 安装设置

### 1. 安装 npm 包

在 `dependencies` 中安装 `@github/copilot`。

```shell theme={null}
npm install @github/copilot
```

安装后，可以通过下面的路径直接执行 Copilot CLI。

```shell theme={null}
node node_modules/@github/copilot/npm-loader.js --version
```

Copilot CLI 1.0.64 及以后，`index.js` 只包含在按平台划分的包中，因此如果要使用 `index.js`，请根据你的环境使用相应的包。

```shell theme={null}
node node_modules/@github/copilot-linux-x64/index.js --version
```

### 2. 配置 `.env`

在 `COPILOT_CLI_PATH` 中指定到 `npm-loader.js` 的完整路径。

```dotenv theme={null}
COPILOT_CLI_PATH=/path/to/project/node_modules/@github/copilot/npm-loader.js
```

如果想使用 `base_path()` 动态设置路径，请直接编辑 `config/copilot.php`。

```php theme={null}
'cli_path' => base_path('node_modules/@github/copilot/npm-loader.js'),
```

## 部署

在部署到生产服务器时，构建资源后，请排除 `devDependencies` 重新安装。由于 `@github/copilot` 位于 `dependencies`，因此会保留下来。

```shell theme={null}
npm install
npm run build
npm install --omit=dev
```

通过 `npm install --omit=dev`，`devDependencies` 中的包会被删除，只有包含 `@github/copilot` 在内的 `dependencies` 中的包会留在 `node_modules` 中。

## 优点与注意事项

| 优点                       | 注意事项                  |
| ------------------------ | --------------------- |
| 可以严格管理 CLI 的版本           | `node_modules` 的体积会增加 |
| 可以通过 `package.json` 固定版本 | CLI 的更新需要手动进行         |
| 团队所有人都可以使用相同版本           | 需要 Node.js 运行环境       |

## 认证

无论安装方式如何，认证方式都相同。在 `.env` 中设置 `COPILOT_GITHUB_TOKEN`。

```dotenv theme={null}
COPILOT_GITHUB_TOKEN=your-token
```

详情请参考 [认证](/zh/packages/laravel-copilot-sdk/auth)。

<Info>
  最新信息请参考 [GitHub 仓库](https://github.com/invokable/laravel-copilot-sdk)。
</Info>


## Related topics

- [Laravel Boost Custom Agent for GitHub Copilot CLI](/zh/packages/laravel-boost-copilot-cli.md)
- [Laravel LSP — 通过 Language Server Protocol 扩展 IDE 能力](/zh/blog/laravel-lsp-introduction.md)
- [使用 Vite 打包资源](/zh/vite.md)
- [Laravel Prompts](/zh/prompts.md)
- [Plugin Directories](/zh/packages/laravel-copilot-sdk/plugin-directories.md)
