@archlinter/cli

中文文档
0.17.1发布于 2026/08/11MIT零依赖构建来源已验证近 30 天下载 4.4万

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

中文使用文档
文档目录21 节
  1. 为什么是阿克林特?
  2. 特征
  3. 30+ 建筑气味探测器
  4. 框架情报
  5. 输出格式
  6. 开发者经验
  7. 安装
  8. 使用 npm( 建议)
  9. 从源
  10. 快速启动
  11. 基本扫描
  12. 带有配置
  13. 开发的监视模式
  14. 出口报告
  15. 按严重程度过滤
  16. 运行特定探测器
  17. 不包括探测器
  18. 配置
  19. 可用的探测器
  20. 许可证
  21. 贷项

archlint logo

箭头林

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

License: MIT Rust

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

为什么是阿克林特?

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

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

特征

30+ 建筑气味探测器

依赖性和结构问题:

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

设计质量问题:

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

守则组织问题:

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

框架具体问题:

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

框架情报

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

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

输出格式

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

开发者经验

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

安装

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

从源

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

快速启动

基本扫描

archlint scan ./my-project

带有配置

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

开发的监视模式

archlint watch --debounce 500 --clear

出口报告

# 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

按严重程度过滤

archlint scan --min-severity high

运行特定探测器

archlint scan --detectors cycles,god_module,dead_code

不包括探测器

archlint scan --exclude-detectors barrel_file,lcom

配置

创建 .archlint.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高度复杂性✅
...

• 见完整的探测器清单

许可证

麻省理工学院执照 - 看 自由主义 详细情况.

贷项

版本与发布记录

@archlinter/cli 共发布 43 个版本,首次发布于 2026/01/02;过去 12 个月发布了 43 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.17.1latest2026/08/112 个月前
0.16.02026/01/179 个月前
0.15.1-canary.1canary2026/01/179 个月前
0.15.0-canary.12026/01/169 个月前
0.15.12026/01/169 个月前
0.15.02026/01/169 个月前

其他发布通道:alpha → 0.6.0-alpha.1,canary → 0.15.1-canary.1。

关于 @archlinter/cli 的常见问题

@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 和提交记录判断。