> For the complete documentation index, see [llms.txt](https://developer.eagle.cool/plugin-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.eagle.cool/plugin-api/zh-tw/plugin-review/criteria/package-contents.md).

# 安裝包內容

提交的 `.eagleplugin` 應是乾淨、可發佈且只包含執行所需檔案的安裝包。審核會盤點可能屬於敏感資料、開發環境、不必要產物、巢狀壓縮包或二進位程式的內容，再依實際用途判斷是否需要修改。

被列入檢查不代表檔案一定違規。例如，插件確實可能需要本機二進位元件或執行階段相依套件；開發者必須能夠說明其來源、用途與必要性。

## 不要包含開發環境目錄

最終安裝包通常不應包含與執行無關的版本控制、編輯器、虛擬環境或快取目錄，例如：

* `.git/`、`.svn/`、`.hg/`、`.bzr/`；
* `.idea/`、`.vscode/`；
* `__pycache__/`、`.pytest_cache/`；
* `.venv/`、`venv/`。

不要把完整專案目錄原樣打包。`node_modules/` 或其他相依套件目錄如果確實是執行所需，可以保留必要內容；如果插件已經完成建置，建議移除不會在發佈版本中使用的開發相依套件與重複套件。

## 移除敏感資料

安裝包不得包含真實憑證或私人密鑰。請特別檢查：

* `.env` 及其變體；
* `.pem`、`.key`、`.p12`、`.pfx` 等密鑰或憑證檔案；
* `credentials.json`、`secrets.json`；
* 包含 Token 或私有 Registry 憑證的 `.npmrc`；
* 測試帳號、個人資料、內部網址或開發資料庫。

如果敏感資料曾經被打包或公開，請不要只刪除檔案；還應立即停用並更換相關密鑰或憑證。

## 清理不必要檔案

請移除不會影響插件執行的系統與暫存檔案，例如：

* `.DS_Store`、`Thumbs.db`、`desktop.ini`；
* `.log`、`.tmp`、`.swp`、`.swo`；
* 測試輸出、除錯記錄、截圖草稿與本機快取；
* 重複的 `dist/`、舊版本建置或同時存在的原始與發佈產物。

安裝包內容越精簡，越容易確認使用者最終會安裝什麼，也能降低意外洩漏與供應鏈風險。

## 避免巢狀壓縮包與重複打包

不要在 `.eagleplugin` 內再放入與執行無關的 `.zip`、`.rar`、`.7z`、`.tar`、`.tgz`、`.gz`、`.dmg`、`.iso` 等壓縮包或磁碟映像。

如果壓縮包是插件功能必需的資源，請在審核說明中解釋內容、來源及使用方式。夾帶原始碼壓縮包、舊安裝包、備份檔案或另一份完整插件，會讓審核無法確認實際發佈範圍，並可能阻擋投稿。

## 二進位檔案

`.exe`、`.dll`、`.msi`、`.dylib`、`.so`、`.app`、`.pkg`、`.bin` 等檔案會接受額外檢查，但不會只因為是二進位格式就自動被拒絕。

插件需要二進位元件時，請確保：

* 檔案直接服務於插件宣稱的功能；
* 來源可信，並由開發者有權重新發佈；
* 支援的平台與架構已清楚說明；
* 不會執行未向使用者說明的安裝、下載或系統變更；
* 安裝包沒有同時夾帶無關平台或舊版本的重複檔案。

## 常見未通過原因

* 安裝包包含版本控制目錄、編輯器設定或虛擬環境。
* `.env`、私鑰或憑證檔案被一起打包。
* 包含巢狀原始碼壓縮包、舊安裝包或重複建置產物。
* 夾帶大量與執行無關的日誌、快取、測試或系統檔案。
* 二進位檔案來源與用途無法說明，或會執行未揭露的系統操作。

建議從全新的發佈目錄建立安裝包，並在投稿前解開一份副本，逐項確認裡面只剩使用者實際需要安裝的內容。
