> ## 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-TW/packages/laravel-copilot-sdk/laravel-cloud) 與 [在 GitHub Actions 上的使用方式](/zh-TW/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-TW/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-TW/packages/laravel-boost-copilot-cli.md)
- [Laravel LSP — 以 Language Server Protocol 擴充 IDE 功能](/zh-TW/blog/laravel-lsp-introduction.md)
- [前端](/zh-TW/frontend.md)
- [GitHub Actions - GitHub Copilot SDK for Laravel](/zh-TW/packages/laravel-copilot-sdk/github-actions.md)
- [開始使用 - GitHub Copilot SDK for Laravel](/zh-TW/packages/laravel-copilot-sdk/getting-started.md)
