# @accordproject/concerto-linter-default-ruleset 中文文档

规范地址：https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/

版本：5\.2\.1
npm 元数据更新时间：2026-10-17T23:37:00.718Z
中文译文更新时间：2026-11-05T22:23:12.749Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40accordproject/concerto-linter-default-ruleset
原文对照：https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/?lang=original
项目主页：https://github.com/accordproject/concerto
源码仓库：https://github.com/accordproject/concerto

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

- 包体积（解压后）：99.9 kB，84 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：4 个
- 首次发布：2025-07-16T10:00:27.689Z
- 最新版本发布：2026-10-17T23:37:00.377Z
- 近 30 天下载量：12645（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：47（近 12 个月 25 个）

## 中文简介

协议项目 Concerto Linter 的默认规则集

## 安装

```sh
npm install @accordproject/concerto-linter-default-ruleset
```

也可以使用：`pnpm add @accordproject/concerto-linter-default-ruleset`、`yarn add @accordproject/concerto-linter-default-ruleset`、`bun add @accordproject/concerto-linter-default-ruleset`

## README

# 音乐会 Linter 默认规则

一套综合规则,旨在对照行业最佳做法和一致的命名公约验证协奏会模式。 这个默认规则集有助于在整个项目中保持高质量,可读性和可维护的协奏曲模型. 它完全可配置 - 您可以扩展它, 添加新规则, 禁用已有规则, 或者创建全新的规则, 而无需扩展此规则 .

这个子包是.. `@accordproject/concerto-linter` 软件包。 读取 [协奏曲 linter 读取](https://github.com/accordproject/concerto/tree/main/packages/concerto-linter) 如果你想知道如何使用 规则与协奏曲模型.

## 目录

-   [音乐会 Linter 默认规则](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-concerto-linter-default-ruleset)
    -   [目录](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-table-of-contents)
    -   [主要惠益](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-key-benefits)
    -   [现行规则](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-available-rules)
    -   [安装](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-installation)
    -   [使用量](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-usage)
    -   [自定义](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-customization)
        -   [扩展默认规则](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-extending-the-default-ruleset)
        -   [使具体规则失效](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-disabling-specific-rules)
            -   [可用规则ID](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-available-rule-ids)
        -   [授权具体规则](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-enabling-specific-rules)
        -   [调整规则严重性](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-adjusting-rule-severity)
    -   [创建自定义规则](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-creating-custom-rules)
    -   [许可证](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-license)

## 主要惠益

-   **一致的代码样式**: 在整个协奏曲模式中执行统一的命名惯例
-   **错误预防**: 发现常见的建模错误后再出问题
-   **最佳做法**: 自动应用行业标准建模做法
-   **可自定义**: 方便地扩展或修改规则,以符合项目的具体需要
-   **整合准备**: 与协奏曲 Linter 和您的开发工作流程无缝工作

## 现行规则

下表概述了默认规则集中可用的林入规则:

| 规则一d | 说明 |
| --- | --- |
| [名称空间版本](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-namespace-version) | 确保模型中的命名空间声明包含一个版本编号. 这个规则在命名空间中执行语义化的版本,促进清晰度和相容性管理. |
| [无保留关键词](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-no-reserved-keywords) | 强制规定用于在协奏曲模型中声明、属性和装饰者的名称不使用保留的关键词。 保留的关键词是语言特定术语,如果作为标识符使用,可能导致冲突或出乎意料的行为. |
| [帕斯卡尔案件申报](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-pascal-case-declarations) | 确保声明名称(scalar, enum, 概念, 资产, 参与者, 交易, 事件)遵循PascalCase命名惯例(例如"我的声明"). 这促进了各种示范宣言的一致性和可读性. |
| [骆驼案件财产](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-camel-case-properties) | 保证类型字符串, Double, Integer, Long, DateTime, 和 Boolean 的属性使用 CameCase 命名 。 这促进了整个模型中财产命名公约的一致性和可读性. |
| [上斯纳克- 大小写- enum- constants](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-upper-snake-case-enum-constants) | 强制要求所有 enum 常数名称遵循 UPPER SNAKE CASE 公约 。 此规则检查每个 enum 属性名称, 并报告一个与所需的模式不符的错误 。 确保整个模型的注名的一致性和可读性. |
| [帕斯卡尔个案解码器](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-pascal-case-decorators) | 确保装饰者名称遵循PascalCase命名惯例(如"MyDecator"). 这促进了模型装饰器的一致性和可读性. |
| [字符串长度验证器](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-string-length-validator) | 确保数据模型中的所有字符串属性都应用了长度验证符,这有助于防止数据长度不一致,并确保适当的存储. |
| [无空声明](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-no-empty-declarations) | 检测并报告任何模拟申报为空. 这一规则有助于维持模型的完整性,确保所有宣言包含有意义的内容,防止将未使用或占位声明纳入模型. |
| [抽象必须子分类](https://npmcn.com/package/%40accordproject/concerto-linter-default-ruleset/#readme-abstract-must-subclassed) | 确保模型中的每一个抽象声明至少有一个混凝土子类. 这有助于防止被使用或被孤的抽象类型,执行更好的模型设计. |

## 安装

首先,将软件包安装为开发依赖:

```bash
npm install --save-dev @accordproject/concerto-linter-default-ruleset
```

## 使用量

一旦安装, 当未指定自定义规则时, 默认规则器会自动被 Concesso Linter 使用 :

```javascript
import { lintModel } from '@accordproject/concerto-linter';

// The default ruleset will be used automatically
const results = await lintModel(modelText);
console.log(results);
```

要明确规定默认规则 :

```javascript
const results = await lintModel(modelText, { ruleset: 'default' });
```

## 自定义

要创建适合您项目需要的自有规则, 您可以扩展默认规则, 或者从头创建全新的规则 .

您的规则集应该用其中一种文件格式定义 : `.spectral.yaml`, (中文(简体) ), `.spectral.yml`, (中文(简体) ), `.spectral.json`,或 `.spectral.js`。协奏曲 Linter 将自动检测和使用这些文件,也可以使用 `ruleset` 属性 : `ruleset: "./path/to/my-ruleset.yaml"`。 。 。 .

### 扩展默认规则

您可以以多种格式扩展默认规则集:

**YAML (. specture.yaml) (英语)**

```yaml
extends: '@accordproject/concerto-linter-default-ruleset'
```

* * *

**JSON (. spect.json) (英语)**

```json
{
  "extends": "@accordproject/concerto-linter-default-ruleset"
}
```

* * *

**JavaScript (. s光谱.js) (英语)**

```javascript
const rules = require('@accordproject/concerto-linter-default-ruleset');
module.exports = {
  extends: rules
};
```

### 使具体规则失效

通过设置与项目要求不匹配的特定规则可禁用 `'off'`中定义规则标识符 `ruleset-main.ts` 文件位于 `concerto/packages/concerto-linter/default-ruleset/src`。 。 。 .

#### 可用规则ID

以下是所有可以禁用的规则ID:

| 规则ID | 说明 |
| --- | --- |
| `namespace-version` | 确保命名空间包含版本编号 |
| `no-reserved-keywords` | 防止使用保留关键词 |
| `pascal-case-declarations` | 执行 PascalCase 声明 |
| `camel-case-properties` | 强制骆驼 Case 属性 |
| `upper-snake-case-enum-constants` | 对 enum 常数执行 UPPER SNAKE CASE |
| `pascal-case-decorators` | 为装饰者执行PascalCase |
| `string-length-validator` | 需要字符串长度验证符 |
| `no-empty-declarations` | 防止空声明 |
| `abstract-must-subclassed` | 确保抽象类有混凝土子类 |

**YAML (. specture.yaml) (英语)**

```yaml
extends: '@accordproject/concerto-linter-default-ruleset'
rules:
  pascal-case-declarations: 'off'
  camel-case-properties: 'off'
```

* * *

**JSON (. spect.json) (英语)**

```json
{
  "extends": "@accordproject/concerto-linter-default-ruleset",
  "rules": {
    "pascal-case-declarations": "off",
    "camel-case-properties": "off"
  }
}
```

**JavaScript (. s光谱.js) (英语)**

```javascript
const rules = require('@accordproject/concerto-linter-default-ruleset');
module.exports = {
  extends: rules,
  rules: {
    'pascal-case-declarations': off,
    'namespace-version': off
  }
};
```

### 授权具体规则

你可以有选择地从一切开始 并且只允许特定的规则:

**YAML (. specture.yaml) (英语)**

```yaml
extends: [['@accordproject/concerto-linter-default-ruleset', 'off']]
rules:
  pascal-case-declarations: true
  namespace-version: true
```

**JSON (. spect.json) (英语)**

```json
{
  "extends": [["@accordproject/concerto-linter-default-ruleset", "off"]],
  "rules": {
    "pascal-case-declarations": true,
    "namespace-version": true
  }
}
```

**JavaScript (. s光谱.js) (英语)**

```javascript
const rules = require('@accordproject/concerto-linter-default-ruleset');
module.exports = {
  extends: [[rules, 'off']],
  rules: {
    'pascal-case-declarations': true,
    'namespace-version': true
  }
};
```

* * *

### 调整规则严重性

您可以自定义每项规则的严厉程度,以控制如何报告违规行为.

-   **0 个** = 错误(必须固定)
-   **1个** = 警告(应处理)
-   **2个** =信息(有用信息)
-   **3个** = 提示(可选建议)

**YAML (. specture.yaml) (英语)**

```yaml
extends: '@accordproject/concerto-linter-default-ruleset'
rules:
  pascal-case-declarations: 'warn'  # Change from error to warning
  camel-case-properties: 'info'     # Change to informational
```

**JSON (. spect.json) (英语)**

```json
{
  "extends": "@accordproject/concerto-linter-default-ruleset",
  "rules": {
    "pascal-case-declarations": "warn",
    "camel-case-properties": "info"
  }
}
```

**JavaScript (. s光谱.js) (英语)**

```javascript
const rules = require('@accordproject/concerto-linter-default-ruleset');
module.exports = {
  extends: rules,
  rules: {
    'pascal-case-declarations': 'warn',
    'camel-case-properties': 'info'
  }
};
```

## 创建自定义规则

无论是在默认规则中添加新规则还是创建全新的规则,都可以遵循Spectral规则格式. 关于综合文件,请参看 [光谱规则文档](https://meta.stoplight.io/docs/spectral/e5b9616d6d50c-rulesets)。 。 。 .

以下是一个简单的例子,说明习惯规则是什么样子:

```yaml
# description (optional): Explains what the ruleset is about.
description: "Declaration names (scalar, enum, concept, asset, participant, transaction, event) should be PascalCase."

# given (required): JSONPath expression that specifies where the rule applies.
given: "$.models[*].declarations[*].name"

# message (required): The error/warning message shown when the rule is violated.
message: "Declaration '{{value}}' should be PascalCase (e.g. 'MyDeclaration')"

# severity (optional): The level of violation.
# 0 = error, 1 = warning, 2 = info, 3 = hint
severity: 0

# then (required): Defines what function to apply and how.
then:
  # function (required): The function that validates the rule.
  function: casing

  # functionOptions (optional): Extra options for the function.
  functionOptions:
    type: pascal
```

对于更为复杂的规则,您可以在此之后创建自定义的 JavaScript 函数 [光谱规则文档](https://meta.stoplight.io/docs/spectral/e5b9616d6d50c-rulesets) 并导入到您的规则中,类似于内置规则是如何运作的.

## 许可证

Accord Project源代码文件在位于LICENSE文件的Apache许可证2.0版本(Apache-2.0)下提供. 协议项目文件文件根据创用CC-BY-4.0国际许可证提供.

## 常见问题

### @accordproject/concerto-linter-default-ruleset 是什么？

协议项目 Concerto Linter 的默认规则集

### 如何安装 @accordproject/concerto-linter-default-ruleset？

在项目目录运行 npm install @accordproject/concerto-linter-default-ruleset，或使用 pnpm add / yarn add / bun add。

### @accordproject/concerto-linter-default-ruleset 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @accordproject/concerto-linter-default-ruleset 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @accordproject/concerto-linter-default-ruleset 需要什么版本的 Node\.js？

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

### @accordproject/concerto-linter-default-ruleset 可以商用吗？

@accordproject/concerto-linter-default-ruleset 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @accordproject/concerto-linter-default-ruleset 的下载量有多少？

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

### @accordproject/concerto-linter-default-ruleset 还在维护吗？

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

