入門TypeScript

jscpd原始碼複製貼上檢測利器,支援223種格式

jscpd 是一個高效的原始碼複製貼上檢測工具,支援223種程式語言和檔案格式。它專為AI流水線設計,提供token高效的報告器、技能和MCP伺服器,幫助開發者快速定位程式碼克隆,提升程式碼質量和可維護性。

5.7K 星標
235 分叉
48 問題
7 流覽
TypeScript
MIT
收錄日期

專案概述

jscpd 是一個高效的原始碼複製貼上檢測工具,支援223種程式語言和檔案格式。它專為AI流水線設計,提供token高效的報告器、技能和MCP伺服器,幫助開發者快速定位程式碼克隆,提升程式碼質量和可維護性。

程式碼重複是個老問題。你接手一個專案,開啟某個檔案,發現大段大段的程式碼塊似曾相識——要麼是複製貼上留下的痕跡,要麼是團隊協作時沒清理的冗餘。手動找?不現實。grep?只能搜關鍵詞,沒法定位結構相似的片段。這時候你需要一個專業的檢測工具,jscpd 就是一個不錯的選擇。

為什麼選擇 jscpd?

jscpd 的全稱是「JavaScript Copy/Paste Detector」,但它早已不侷限於 JS。目前支援 223 種格式,從主流語言(Python、Java、C++)到配置檔案、Markdown 都能處理。它的檢測引擎基於抽象語法樹(AST)與文字相似度結合,既能識別精確複製,也能發現 經過變數重新命名或換行調整的克隆。這在實際專案中很常見:開發者複製一段邏輯,改了變數名和註釋,但結構本質相同。

對於大型程式碼庫,jscpd 的效能也經過優化。它支援 增量檢測,只掃描變更的檔案,並且可以設定最小 token 數來過濾掉短小的重複片段(比如 getter/setter 樣板程式碼)。輸出格式多樣:JSON、HTML、XML 等,方便整合到 CI/CD 流水線中。

AI 時代的獨特設計

jscpd 的維護者特意為 AI 工作流做了適配。它提供了 token-efficient reporter,能夠以極少的 token 量輸出檢測結果,方便傳給大語言模型做進一步分析或修復建議。此外還內建了 Skill 和 MCP 伺服器(Model Context Protocol),允許 AI Agent 直接呼叫 jscpd 的能力。這意味著你可以寫一段自然語言指令:「檢測當前專案中的重複程式碼,並生成重構方案」,然後由智慧體完成整個流程。

聽起來挺玄,但實際跑一遍就懂。它的 CLI 使用簡單:

  • jscpd ./src – 掃描 src 目錄下的所有檔案
  • jscpd --formats typescript,markdown – 只檢測特定格式
  • jscpd --min-lines 5 --min-tokens 50 – 設定閾值,避免誤報

結果會列出重複片段的位置、行數和相似度百分比,並用顏色標記。直觀且精準。

實際使用場景:程式碼審查與重構

想象一下你在做一次大型重構:需要把某個功能模組抽取成獨立庫。先跑一遍 jscpd,迅速定位哪些地方有重複實現。然後你就能集中精力合併這些程式碼,而不是在數千個檔案中憑感覺猜測。對於新加入團隊的開發者,jscpd 也能作為程式碼質量檢查的一環——在 CI 中一旦發現克隆比例超過閾值,就阻斷合併或發出警告。

一個值得注意的細節是 jscpd 不依賴外部服務,所有檢測都在本地完成,保證了程式碼安全。這點對金融、醫療等合規要求嚴格的行業尤其有意義。

侷限與說明

沒有任何工具是完美的。jscpd 更擅長檢測結構相似的「語法克隆」,對於語義相同但實現差異巨大的片段(比如一個用遞迴、一個用迭代),它可能無法識別。此外,檢測結果需要人工甄別:有些「重複」可能是業務需要的統一邏輯(如校驗規則),不應盲目刪除。最後,對於超大型單體倉庫(百萬行級別),初始掃描仍需要一些時間,雖然比同類工具已經快不少。

jscpd 是一個實用、專注且持續更新的開源專案。如果你正在為程式碼重複感到頭疼,不妨給它幾分鐘時間——也許能省下之後幾小時的排查功夫。

程式碼克隆檢測複製貼上檢測jscpd原始碼質量程式設計工具程式碼審查重複程式碼檢測開源工具AST檢測CI整合

項目評分

0.0 (0 評價)

分享

常見問題

jscpd: 原始碼複製貼上檢測利器,支援223種格式 是什麼?

jscpd 是一個高效的原始碼複製貼上檢測工具,支援223種程式語言和檔案格式。它專為AI流水線設計,提供token高效的報告器、技能和MCP伺服器,幫助開發者快速定位程式碼克隆,提升程式碼質量和可維護性。

jscpd: 原始碼複製貼上檢測利器,支援223種格式 用什麼語言開發?

jscpd: 原始碼複製貼上檢測利器,支援223種格式 主要使用 TypeScript 開發。

jscpd: 原始碼複製貼上檢測利器,支援223種格式 使用什麼開源授權?

jscpd: 原始碼複製貼上檢測利器,支援223種格式 基於 MIT 授權開源。

相關專案

暫無結果

探索更多

相似工具

Cursor

Cursor

一款基於 VS Code 二次開發的智慧程式碼編輯器,以「原生內建 AI」為核心賣點。它不依賴外掛,而是將 AI 深度植入編輯器底層,能夠理解整個專案的上下文程式碼庫,支援無縫遷移 VS Code 的所有配置和外掛。

Google Antigravity

Google Antigravity

Antigravity 支援多模型,包括 Gemini 3 Pro、Claude Sonnet 4.5、GPT-OSS,開發者可以在同一環境中選擇最適合任務的模型。

Codex

Codex

OpenAI Codex 是由 OpenAI 開發的 AI 程式設計模型和助手,可將自然語言指令翻譯成對應的原始碼,為開發者提供智慧補全、程式碼生成等功能。它最初於 2021 年作為 OpenAI API 的程式碼模型推出,曾為 GitHub Copilot 提供核心支援。隨著 OpenAI 技術的迭代,Codex 在 2025 年以「AI 程式設計智慧體」的全新姿態迴歸,能夠理解複雜需求並自動編寫、除錯程式碼,顯著提升開發效率和軟體交付速度。

Kiro

Kiro

Kiro 是由 AWS 推出的 AI 程式設計 IDE,採用規範驅動的開發模式,將自然語言需求轉化為明確的規格文件和任務,再由內建 AI 代理生成程式碼並除錯優化,全流程輔助大型專案開發。

Trae

Trae

Trae(官網 trae.ai)是由 位元組跳動(ByteDance)推出的一款 AI 原生整合開發環境(IDE)。它不是簡單地作為一個程式設計助手,而是一個「協作夥伴」,通過深度整合大型語言模型(LLM),幫助開發者從需求、構建程式碼,到除錯和部署,實現更智慧化、自動化的軟體開發。

Claude

Claude

Claude 是由美國人工智慧公司 Anthropic 打造的智慧語言互動平臺,它融合了深度文字理解、資訊整理、程式碼輔助和任務分析等能力,能在聊天對話之外應對更復雜的問題,例如長文摘要、影象解析、邏輯推理及程式設計協助等。相比一些單一問答機器人,Claude 更像一個具備推理邏輯、可擴充套件功能的智慧工具。

評論

評論

0
0/500 字元

暫無評論

成為第一個評論的人

開源專案

探索、學習和貢獻開源 AI 專案,推動人工智慧技術的發展

查看全部