Chuyển tới nội dung chính

Kiểm tra cơ sở mã - Kiểm tra cơ sở mã với pygount: LỘC, ngôn ngữ, tỷ lệ

{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}`#Kiểm tra cơ sở mã

Kiểm tra cơ sở mã với pygount: LỘC, ngôn ngữ, tỷ lệ.

Siêu dữ liệu kỹ năng

NguồnĐi kèm (được cài đặt theo mặc định)
Đường dẫn

skills/GitHub/codebase-inspection ` | | Phiên bản |

1.0.0 ` | | Tác giả | Đại lý Hermes | | Giấy phép | MIT | | Nền tảng | Linux, macOS, Windows | | Thẻ |

LOC

, `Code Analysis

, `pygount

, `Codebase

, `Metrics

, Repository | | Kỹ năng liên quan | XPROTECTX14XPROTECTX |

Tham khảo: đầy đủ SKILL.md

thông tin

Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.

Kiểm tra cơ sở mã bằng pygount

Phân tích kho lưu trữ để tìm dòng mã, phân tích ngôn ngữ, số lượng tệp và tỷ lệ mã so với nhận xét bằng `pygount

.

Khi nào nên sử dụng

  • Người dùng yêu cầu đếm LỘC (dòng mã)
  • Người dùng muốn phân tích ngôn ngữ của repo
  • Người dùng hỏi về kích thước hoặc thành phần codebase
  • Người dùng muốn tỷ lệ mã so với nhận xét
  • Câu hỏi chung "repo này lớn đến mức nào"

Điều kiện tiên quyết

pip install --break-system-packages pygount 2>/dev/null || pip install pygount

`

## 1. Tóm tắt cơ bản (Thông dụng nhất)

Nhận bản phân tích ngôn ngữ đầy đủ với số lượng tệp, dòng mã và dòng nhận xét:

`bash
cd /path/to/repo
pygount --format=summary \

--folders-to-skip=".git,node_modules,venv,.venv,__pycache__,.cache,dist,build,.next,.tox,.eggs,*.egg-info" \
.

`
``**QUAN TRỌNG:** Luôn sử dụng

--folders-to-skip
` để loại trừ các thư mục phụ thuộc/bản dựng, nếu không pygount sẽ thu thập dữ liệu chúng và mất rất nhiều thời gian hoặc bị treo.

## 2. Loại trừ thư mục chung

Điều chỉnh dựa trên loại dự án:

``` bash

# Python projects
--folders-to-skip=".git,venv,.venv,__pycache__,.cache,dist,build,.tox,.eggs,.mypy_cache"

# JavaScript/TypeScript projects
--folders-to-skip=".git,node_modules,dist,build,.next,.cache,.turbo,coverage"

# General catch-all
--folders-to-skip=".git,node_modules,venv,.venv,__pycache__,.cache,dist,build,.next,.tox,vendor,third_party"

`

## 3. Lọc theo ngôn ngữ cụ thể

``` bash

# Only count Python files
pygount --suffix=py --format=summary .

# Only count Python and YAML
pygount --suffix=py,YAML,yml --format=summary .

`

## 4. Xuất chi tiết từng tệp

``` bash

# Default format shows per-file breakdown
pygount --folders-to-skip=".git,node_modules,venv" .

# Sort by code lines (pipe through sort)
pygount --folders-to-skip=".git,node_modules,venv" . | sort -t$'\t' -k1 -nr | head -20

`

## 5. Định dạng đầu ra

``` bash

# Summary table (default recommendation)
pygount --format=summary .

# JSON output for programmatic use
pygount --format=JSON .

# pipe-friendly: Language, file count, code, docs, empty, string
pygount --format=summary . 2>/dev/null

`

## 6. Diễn giải kết quả

Các cột của bảng tóm tắt:
- **Ngôn ngữ** — ngôn ngữ lập trình được phát hiện
- **Files** — số lượng file của ngôn ngữ đó
- **Code** — dòng mã thực tế (có thể thực thi/khai báo)
- **Nhận xét** — dòng là nhận xét hoặc tài liệu
- **%** — phần trăm của tổng số

Ngôn ngữ giả đặc biệt:
-
`__empty__

- tập tin trống
-
`__binary__
` — tệp nhị phân (hình ảnh, được biên dịch, v.v.)
-
`__generated__

- các tệp được tạo tự động (được phát hiện theo phương pháp phỏng đoán)
-
`__duplicate__

- các tệp có nội dung giống hệt nhau
-
`__unknown__

- loại tệp không được nhận dạng

## cạm bẫy
1. **Luôn loại trừ .git, node_modules, venv** — không có

--folders-to-skip

, pygount sẽ thu thập dữ liệu mọi thứ và có thể mất vài phút hoặc bị treo trên các cây phụ thuộc lớn.
2. **Markdown hiển thị 0 dòng mã** — pygount phân loại tất cả nội dung Markdown dưới dạng nhận xét, không phải mã. Đây là hành vi được mong đợi.
3. **Tệp JSON hiển thị số lượng mã thấp** — pygount có thể đếm các dòng JSON một cách thận trọng. Để biết số lượng dòng JSON chính xác, hãy sử dụng trực tiếp
`wc -l

.
4. **Monorepos lớn** — đối với các kho lưu trữ rất lớn, hãy cân nhắc sử dụng

--suffix
` để nhắm mục tiêu các ngôn ngữ cụ thể thay vì quét mọi thứ.