@faircopy/core

中文文档
1.27.3发布于 2026/11/07MITTypeScriptES Module构建来源已验证近 30 天下载 1.3万

公平复制的核心引擎——类型,配置加载器,文件解析器,规则跑取器

中文使用文档
文档目录10 节
  1. 安装
  2. 公共 API
  3. loadConfig(cwd?)
  4. resolveFiles(config, cwd?)
  5. 忽略注释
  6. lintFile(filePath, source, adapters, rules)
  7. lintFileWithCoverage(filePath, source, adapters, rules)
  8. parseSeverity(ruleConfig)
  9. 关键类型
  10. 代理输出

@ faircopy/ 核心

公平复制的核心引擎. 提供类型,配置加载,文件解析度,以及规则导出. 此软件包适用于适配器和规则作者——大多数用户应安装 faircopy 换句话说.

安装

npm i @faircopy/core

公共 API

loadConfig(cwd?)

查找和装入 faircopy.config.ts (或 .js, (中文(简体) ), .mjs, (中文(简体) ), .cjs)通过 jiti投篮 ConfigError 如果没有找到配置.

import { loadConfig } from '@faircopy/core'
const { config, configPath } = await loadConfig(process.cwd())

loadConfigFile(filename) 装入精确的配置路径并解析导入 相对于那个文件.

resolveFiles(config, cwd?)

解析文件 globs from config.files,尊重 config.ignore 财务报告和审定财务报表 .gitignore。 。 。 .

忽略注释

为一条源线禁止每一条规则

// faircopy-ignore-next-line
<p>Intentional copy that would otherwise be reported.</p>

<p>Intentional copy.</p> {/* faircopy-ignore-line */}

添加逗号分隔的规则 ID 以压制那些规则 :

// faircopy-ignore-next-line no-em-dash, no-weasel-words
<p>Intentional rule exceptions.</p>

这些指令与行、块、JSX和HTML评论标记相配合.

import { resolveFiles } from '@faircopy/core'
const files = await resolveFiles(config, cwd)

lintFile(filePath, source, adapters, rules)

使用适当的适配器运行一组针对单个文件的解析规则.

import { lintFile } from '@faircopy/core'
const diagnostics = await lintFile(filePath, source, adapters, resolvedRules)

lintFileWithCoverage(filePath, source, adapters, rules)

回返 { diagnostics, coverage: { adapter, segments, characters } } 从一个 提取通行证. adapter: null 表示扩展不支持 。 无 片段/特征表示没有提取出非空泛的散文. 字符计数使用 UTF-16 代码单元并包括所保留的白空间. lintFile() 仍为 对现有呼叫者只诊断 API; 清空时使用覆盖 API 结果还必须证明提取范围.

parseSeverity(ruleConfig)

参数 a RuleConfig 输入值 { severity, options }。 。 。 .

关键类型

interface FaircopyConfig { files, ignore?, adapters?, rules, noGitignore?, concurrency? }
interface Adapter { name, extensions, extract(filePath, source) }
interface Rule<Opts> { id, description, check(input) }
interface Diagnostic { ruleId, severity, message, range, help?, suggest? }
interface ExtractedText { text, sourceMap, meta? }

见 类型.ts 整个计划.

代理输出

@faircopy/core/reporting 曝光 CLI、 Docs 和集成的可重用格式化 :

import { formatAgentCompact, buildAgentJsonPayload } from '@faircopy/core/reporting'

formatAgentCompact() 指向编码剂的诊断。 默认启用片段, 默认禁用字符字节区域, 两者都可以在全球配置, 或者通过规则配置 output.agentCompact。 。 。 .

export default defineConfig({
  output: {
    agentCompact: {
      snippets: 'all',
      snippetChars: 140,
      chars: false,
      rules: {
        'no-em-dash': { snippets: 'first' },
      },
    },
  },
})

版本与发布记录

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

版本发布日期距今
1.27.3latest2026/11/077 天前
1.27.22026/11/077 天前
1.27.12026/11/077 天前
1.27.02026/11/0410 天前
1.26.02026/10/2124 天前
1.25.02026/10/2025 天前

关于 @faircopy/core 的常见问题

@faircopy/core 是什么?

公平复制的核心引擎——类型,配置加载器,文件解析器,规则跑取器

如何安装 @faircopy/core?

在项目目录运行 npm install @faircopy/core,或使用 pnpm add / yarn add / bun add。

@faircopy/core 支持 TypeScript 吗?

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

@faircopy/core 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@faircopy/core 可以商用吗?

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

@faircopy/core 的下载量有多少?

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

@faircopy/core 还在维护吗?

最新版本 1.27.3 发布于 2026/11/07(7 天前);至今共发布 35 个版本,其中过去 12 个月发布了 35 个;首次发布于 2026/04/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。