# Maguyva 對 JavaScript 的支援：為混合執行環境儲存庫打造的 AI 搜尋

Canonical source: https://maguyva.ai/zh-hant/languages/javascript

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva 透過 AST 剖析與符號擷取支援 JavaScript，協助 AI 代理橫跨 Node 服務、瀏覽器程式碼、腳本與傳統模組進行作業，而不必退化成單純的字串搜尋。

## 支援概況

- 等級: AST 與符號支援
- 程式語言
- 副檔名: .cjs, .js, .mjs, .spec.js, .stories.js, .test.js
- 真正的 AST 剖析，支援語法感知搜尋與結構化情境。
- 具名符號支援語意查詢與交叉參照。啟用關係擷取後，即可使用圖譜導覽。
- 這個語言會為圖譜感知搜尋提供符號與關係；支援的邊類型會隨其原生構造而異。
- 同時支援 AST 剖析與符號擷取。

## 最適合的情境

- 始終未能收斂成單一模組系統或單一框架世代的 Node 與瀏覽器儲存庫。
- 在維護傳統 JavaScript 的同時，逐步導入 TypeScript 或新套件邊界的團隊。
- 需要橫跨 `.js`、`.mjs` 與 `.cjs` 取得結構化資訊、而非臨時拼湊式儲存庫搜尋的代理工作流程。

## 代理工作流程

- 在編輯之前，先追蹤請求路徑或建置步驟，穿過較舊的 JavaScript 模組。
- 比較同一行為在整個儲存庫中，CommonJS 與 ESM 版本的實作差異。
- 在導入新的抽象層之前，先在腳本、工具函式或前端元件中找出重複出現的模式。

## 為什麼混合式 JavaScript 儲存庫依然需要具結構感知能力的搜尋

不少 AI 程式碼工具，會不動聲色地把 JavaScript 當成邁向「真正」TypeScript 之前的雜亂過渡狀態，但這忽略了正式環境儲存庫實際的樣貌。JavaScript 依然掌管著建置步驟、外掛系統、瀏覽器程式碼、工作腳本，以及那些沒有人編列預算好好重寫的長壽命服務路徑。

這讓 JavaScript 的支援，與其說關乎漂亮的語法，不如說更關乎歷史。真正的風險不在於剖析檔案本身，而在於編輯一個模組或輔助函式時，卻不理解它究竟屬於 CommonJS、ESM、瀏覽器程式碼，還是某種專案中較舊的既有模式。

## Maguyva 在 JavaScript 中實際擷取了什麼

Maguyva 涵蓋 `.js`、`.mjs` 與 `.cjs`，會正規化帶有成員前綴的呼叫，並在模糊了前端與後端邊界的 JavaScript 程式碼庫中，支援 JSX 元件的啟發式判斷。它同時也過濾掉大量標準瀏覽器與 Node 執行環境的雜訊，讓儲存庫本身特有的關係得以維持可見。

這在較舊或混合式的儲存庫中特別有用，因為同一個概念可能以不只一種檔案風格存在，而確切的命名方式也往往不一致。

## 對混合執行環境儲存庫有用的 MCP 工作流程

實際的工作流程通常如下：

- 使用 `text_pattern_search`，尋找像 `module.exports` 這樣的精確字串、事件名稱，或舊有的設定標記。
- 當你需要行為層級的探索，例如「舊版上傳流程」或「瀏覽器端打包程式碼中驗證身分的位置」時，使用 `intelligent_search`。
- 當命名不一致、且你希望在代理動手編輯之前先取得一份拼接整合的摘要時，使用 `get_task_context`。

## 這個頁面適合什麼情境

這個頁面適合那些仍保有可觀 JavaScript 使用範圍的儲存庫，而不是那些假裝遷移工作早已完成的團隊。如果目前的儲存庫多半已是 TypeScript，請從 [TypeScript](/zh-hant/languages/typescript) 開始。如果舊的 Web 技術堆疊仍然滲入伺服器端範本或 PHP，[PHP 指南](/zh-hant/languages/php) 會是更相關的搭配讀物。

## 引擎細節

- JavaScript 支援涵蓋 `.js`、`.mjs` 與 `.cjs`，這在同一個儲存庫仍橫跨多種模組風格時很重要。
- 成員前綴與呼叫參數會被正規化，讓重複出現的輔助函式在較舊的檔案間更容易比對。
- 支援 JSX 元件的啟發式判斷，同時常見的瀏覽器與 Node 內建全域變數，則會從關係雜訊中被過濾掉。

## 實用的 MCP 進入點

- `text_pattern_search`: 在擴大搜尋範圍之前，用它來搜尋像 `module.exports`、事件名稱，或舊有設定標記這類確切的字串。
- `intelligent_search`: 當命名不一致，而你需要找的是像「檔案上傳流程」這樣的行為，而不是符號時使用。
- `get_task_context`: 當儲存庫已經產生偏移，而你在動舊有路徑之前需要一份拼接好的摘要時很有用。
