# @archlinter/cli 中文文档

规范地址：https://npmcn.com/package/%40archlinter/cli/

版本：0\.17\.1
npm 元数据更新时间：2026-08-10T19:35:28.641Z
中文译文更新时间：2026-11-06T14:34:42.646Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40archlinter/cli
原文对照：https://npmcn.com/package/%40archlinter/cli/?lang=original
项目主页：https://archlinter.github.io/archlint/
源码仓库：https://github.com/archlinter/archlint

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11.5 kB，5 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-01-02T00:41:10.844Z
- 最新版本发布：2026-08-10T19:35:28.302Z
- 近 30 天下载量：43802（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：43（近 12 个月 43 个）

## 中文简介

TypeScript/JavaScript 的快速架构嗅觉检测器

## 安装

```sh
npm install @archlinter/cli
```

也可以使用：`pnpm add @archlinter/cli`、`yarn add @archlinter/cli`、`bun add @archlinter/cli`

## README

![archlint logo](https://npmcn.com/package/%40archlinter/cli/docs/assets/logo.svg)

# 箭头林

**TypeScript/JavaScript 项目的快速,基于 AST 架构的嗅觉检测器**

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Rust](https://img.shields.io/badge/rust-%23000000.svg?style=flat&logo=rust&logoColor=white)](https://www.rust-lang.org/)

一个强大的CLI工具,用于检测TypeScript/JavaScript代码库中30+类型的建筑气味. 由罗斯特和 `oxc` 用于最大性能的参数.

## 为什么是阿克林特?

现代密码库发展得很快。 Archlint帮助你:

-   🔍 **及早发现建筑问题** 在成为技术债务之前
-   🎯 **框架认识分析** 包含 NestJS、Next.js、React、oclif预设
-   ⚡ **闪亮快活** - 在5秒内分析200多份文件
-   📊 **可采取行动的见解** - 明确解释、严重程度分数和重构建议
-   🔄 **监视模式** 在开发过程中提供实时反馈
-   🧠 **智能缓存** 用于即时再运行

## 特征

### 30+ 建筑气味探测器

**依赖性和结构问题:**

-   循环依赖( 文件级别和类型级别)
-   枢纽模块(太多连接)
-   神模块(做太多)
-   已死代码( 未用导出)
-   孤儿类型( 脱离代码库)

**设计质量问题:**

-   低一致性(LCOM 度量)
-   高接头
-   层层侵犯(领域/应用/基础设施)
-   违反社民党规定(稳定依赖原则)
-   特别羡慕 猎枪手术

**守则组织问题:**

-   档案滥用
-   分解模块/配置
-   原始的痴迷
-   长参数列表
-   深层筑巢

**框架具体问题:**

-   试验泄漏(生产中的试验代码)
-   副作用进口
-   供应商组合
-   不稳定的接口
-   共享可变状态

### 框架情报

理解框架模式的内置预设:

-   **网点JS**:知道控制器是切入点,模块可以有高耦合度
-   **下一个.js**: 了解页面/ API 路由, 放松桶文件规则
-   **反应**: 了解组件模式, 跳过不相关的检查
-   **奥克利夫**: 识别 CLI 命令和钩

### 输出格式

-   **图表** (默认) - 有颜色的清洁终端输出
-   **标记** - 有关人鱼依赖图的详细报告
-   **贾森** - 计算机可读化中心/光盘集成

### 开发者经验

-   **监视模式** 用于实时反馈的调试
-   **智能缓存** 使用内容散列
-   **严重性过滤** (低/中/高/关键)
-   **选择检测器运行** (包括/不包括具体检查)
-   **Git 整合** 用于分析
-   **爱心** 静态模式

## 安装

### 使用 npm( 建议)

```bash
npm install -g @archlinter/cli
# or use without installation
npx @archlinter/cli scan
```

### 从源

```bash
git clone https://github.com/superprotocol/archlint.git
cd archlint
cargo build --release
cargo install --path crates/archlint
```

## 快速启动

### 基本扫描

```bash
archlint scan ./my-project
```

### 带有配置

```bash
archlint scan ./my-project --config .archlint.yaml
```

### 开发的监视模式

```bash
archlint watch --debounce 500 --clear
```

### 出口报告

```bash
# Markdown with diagrams
archlint scan ./my-project --format markdown --report architecture-report.md

# JSON for CI/CD
archlint scan ./my-project --format json --report report.json
# Or use the shorter --json flag
archlint scan ./my-project --json --report report.json
```

### 按严重程度过滤

```bash
archlint scan --min-severity high
```

### 运行特定探测器

```bash
archlint scan --detectors cycles,god_module,dead_code
```

### 不包括探测器

```bash
archlint scan --exclude-detectors barrel_file,lcom
```

## 配置

创建 `.archlint.yaml` 在您的工程根中 :

```yaml
# Files/directories to ignore
ignore:
  - '**/node_modules/**'
  - '**/dist/**'

# Path aliases (from tsconfig.json)
aliases:
  '@/*': 'src/*'

# Entry points (won't be marked as dead code)
entry_points:
  - 'src/main.ts'

# Rule-specific configuration
rules:
  cycles: high

  god_module:
    severity: high
    fan_in: 15
    fan_out: 15
    churn: 20

  layer_violation:
    severity: high
    layers:
      - name: domain
        path: '**/domain/**'
        allowed_imports: []
      - name: application
        path: '**/application/**'
        allowed_imports: ['domain']

  complexity:
    max_complexity: 15

# Rule overrides for specific paths
overrides:
  - files: ['**/tests/**']
    rules:
      complexity: off
      god_module: off

# Scoring and grading settings
scoring:
  minimum: medium
  weights:
    critical: 100
    high: 50
    medium: 20
    low: 5

# Framework preset
extends: nestjs
```

## 可用的探测器

运行 `archlint detectors list` 可以看到所有带有描述的探测器.

| 身份证 | 名称 | 默认已启用 |
| --- | --- | --- |
| `cycles` | 循环依赖 | ✅ |
| `god_module` | 神舱 | ✅ |
| `dead_code` | 死亡代码 | ✅ |
| `layer_violation` | 层违反 | ⚠️ |
| `complexity` | 高度复杂性 | ✅ |
| . | . | . |

[• 见完整的探测器清单](https://archlinter.github.io/archlint/detectors/)

## 许可证

麻省理工学院执照 - 看 [自由主义](https://npmcn.com/package/%40archlinter/cli/LICENSE) 详细情况.

## 贷项

-   与 [氧化c](https://oxc-project.github.io/) - 快速的JS/TS分析器
-   灵感来自 [拱顶单元](https://www.archunit.org/), (中文(简体) ), [疯狂](https://github.com/pahen/madge)

## 常见问题

### @archlinter/cli 是什么？

TypeScript/JavaScript 的快速架构嗅觉检测器

### 如何安装 @archlinter/cli？

在项目目录运行 npm install @archlinter/cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 archlint，可以用 npx archlint 直接运行。

### @archlinter/cli 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/archlinter\_\_cli 是否存在。

### @archlinter/cli 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @archlinter/cli 可以商用吗？

@archlinter/cli 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @archlinter/cli 的下载量有多少？

根据 npm 官方下载统计，@archlinter/cli 在 2026/10/07 – 2026/11/05 这 30 天内被下载 43,802 次，日均约 1,460 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @archlinter/cli 还在维护吗？

最新版本 0\.17\.1 发布于 2026/08/11（2 个月前）；至今共发布 43 个版本，其中过去 12 个月发布了 43 个；首次发布于 2026/01/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

