@accordproject/concerto-linter-default-ruleset

中文文档
5.2.1发布于 2026/10/18Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 1.3万

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

中文使用文档
文档目录12 节
  1. 目录
  2. 主要惠益
  3. 现行规则
  4. 安装
  5. 使用量
  6. 自定义
  7. 扩展默认规则
  8. 使具体规则失效
  9. 授权具体规则
  10. 调整规则严重性
  11. 创建自定义规则
  12. 许可证

音乐会 Linter 默认规则

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

这个子包是.. @accordproject/concerto-linter 软件包。 读取 协奏曲 linter 读取 如果你想知道如何使用 规则与协奏曲模型.

目录

主要惠益

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

现行规则

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

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

安装

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

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

使用量

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

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

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

要明确规定默认规则 :

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) (英语)

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

JSON (. spect.json) (英语)

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

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

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) (英语)

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

JSON (. spect.json) (英语)

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

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

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

授权具体规则

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

YAML (. specture.yaml) (英语)

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

JSON (. spect.json) (英语)

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

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

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) (英语)

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) (英语)

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

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

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

创建自定义规则

无论是在默认规则中添加新规则还是创建全新的规则,都可以遵循Spectral规则格式. 关于综合文件,请参看 光谱规则文档。 。 。 .

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

# 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 函数 光谱规则文档 并导入到您的规则中,类似于内置规则是如何运作的.

许可证

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

版本与发布记录

@accordproject/concerto-linter-default-ruleset 共发布 47 个版本,首次发布于 2025/07/16;过去 12 个月发布了 25 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
5.2.1latest2026/10/1819 天前
5.2.02026/10/1620 天前
5.1.02026/10/0630 天前
5.0.02026/09/081 个月前
5.0.0-beta.3unstable2026/09/081 个月前
5.0.0-beta.22026/09/081 个月前

关于 @accordproject/concerto-linter-default-ruleset 的常见问题

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