@code-pushup/cli

中文文档
0.126.4发布于 2026/09/11MITTypeScriptES Module构建来源已验证近 30 天下载 6320

运行各种代码质量测量的 CLI 使您的团队符合公司目标

中文使用文档
文档目录11 节
  1. 开始
  2. 设置分类( 可选)
  3. 门户一体化
  4. CI 自动化
  5. 配置
  6. 自定义插件
  7. CLI 命令和选项
  8. 全球选项
  9. 常见命令选项
  10. 图标
  11. 缓存

@ code- pushup/ cli (英语)

npm downloads dependencies

🔎🔬 您的软件项目的质量衡量标准 . 📉🔍

  1. ⚙️ 配置您想要使用您最喜欢的工具来跟踪的东西 .
  2. 🤖 把它融入你的线人.
  3. 🌈 在漂亮的仪表板上看到报告.

开始门户网站整合QQ CI 自动化
如何设置 基本项目排序, 过滤器 目标更新 每个公关
Getting started cover imagePortal integration cover imageCI Automation cover

代码PushUp CLI服务于 收集审计结果,可选择 上传报表 到代码PushUp门户.

它可以在您的存储器中局部使用, 或者在您的 CI 环境中集成 .

如果你在寻找程序用途,那么请参考基础 @ code- pushup/ core (中文(简体) ) 软件包.

开始

  1. 用您的软件包管理器安装为 dev 依赖 :

    用于安装命令 npm, (中文(简体) ), yarn 财务报告和审定财务报表 pnpm
    npm install --save-dev @code-pushup/cli
    
    yarn add --dev @code-pushup/cli
    
    pnpm add --save-dev @code-pushup/cli
    
  2. 创建一个 code-pushup.config.ts 配置文件( e).js 或者说 .mjs 扩展也得到支持).

    import type { CoreConfig } from '@code-pushup/models';
    
    const config: CoreConfig = {
      plugins: [
        // ...
      ],
    };
    
    export default config;
    
  3. 根据您的项目需要添加插件( 例如) . @ code- pushup/ eslint- plugin 或者说 @ code- pushup/ coverage- plugin (英语)) (中文(简体) ).

    npm install --save-dev @code-pushup/eslint-plugin
    
    import eslintPlugin from '@code-pushup/eslint-plugin';
    import type { CoreConfig } from '@code-pushup/models';
    
    const config: CoreConfig = {
      // ...
      plugins: [
        // ...
        await eslintPlugin({ eslintrc: '.eslintrc.js', patterns: ['src/**/*.js'] }),
      ],
    };
    
    export default config;
    
  4. 用 CLI 运行 CLI npx code-pushup (见 --help 页:1.

  5. 查看输出目录中的报告文件( 由 persist.outputDir 配置).
    此文件夹应在您的 .gitignore。 。 。 .

设置分类( 可选)

  1. 定义您的自定义类别 .

    const config: CoreConfig = {
      // ...
      categories: [
        {
          slug: 'performance',
          title: 'Performance',
          refs: [
            // reference to an existing audit or group from plugins
            {
              type: 'audit',
              plugin: 'eslint',
              slug: 'react-jsx-key',
              weight: 1,
            },
            // ...
          ],
        },
        // ...
      ],
    };
    
  2. 用 CLI 运行 CLI npx code-pushup。 。 。 .

  3. 查看报告文件,包括输出目录中的类别部分.

门户一体化

如果您可以访问代码 PushUp 门户, 您可以安装上传报告 @code-pushup/portal-client 软件包.

用于安装命令 npm, (中文(简体) ), yarn 财务报告和审定财务报表 pnpm
npm install --save-dev @code-pushup/portal-client
yarn add --dev @code-pushup/portal-client
pnpm add --save-dev @code-pushup/portal-client

软件包安装后, 更新您的配置文件以包含您的门户证书 :

const config: CoreConfig = {
  // ...
  upload: {
    server: 'https://ip-or-domain/path/to/portal/api/graphql',
    apiKey: process.env.PORTAL_API_KEY,
    organization: 'my-org',
    project: 'my-project',
  },
};

CI 自动化

GitHub 动作示例

name: Code PushUp

on: push

jobs:
  collect-and-upload:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npx code-pushup autorun --upload.apiKey=${{ secrets.PORTAL_API_KEY }}

配置

关于配置文件中所有选项的综合清单,请参见: CoreConfig 文档。 。 。 .

配置文件的默认位置是 code-pushup.config.ts, (中文(简体) ), code-pushup.config.mjs 或者说 code-pushup.config.js其他地点需要使用 --config=<path> CLI选项.

如果您的配置文件依赖于一些自定义的 TypeScript 项目配置 - 例如通过导入别名 编译器选项.paths (常见于Nx) - 您可以使用 --tsconfig=<path> CLI选项.

自定义插件

我们提供了有关 如何创建自定义插件。 。 。 .

该寄存器还维护了一组插件实例来显示不同的情景.
每个实例都经过充分测试,以展示插件测试的最佳做法.

自定义插件示例 :

CLI 命令和选项

全球选项

选项类型默认说明
--verbosebooleanprocess.env['CP_VERBOSE'] 如果设置, 否则 false切换是否打印调试日志 .
--configstring寻找 code-pushup.config.{ts|mjs|js}配置文件路径 .
--tsconfigstring无用于装入配置文件的 TypeScript 配置路径 .

[注]
默认情况下, CLI 负载 code-pushup.config.(ts|mjs|js) 如果没有提供配置路径 --config。 。 。 .

常见命令选项

全球选项

选项类型默认说明
--onlyPluginsstring[][]只运行指定的插件 。 适用于所有命令,但 upload。 。 。 .
--skipPluginsstring[][]跳过指定的插件 。 适用于所有命令,但 upload。 。 。 .
--onlyCategoriesstring[][]只运行指定的类别 。 适用于所有命令,但 upload。 。 。 .
--skipCategoriesstring[][]跳过指定的类别 。 适用于所有命令,但 upload。 。 。 .

缓存选项

选项类型默认说明
--cachebooleanfalse缓存运行输出( 读取和写入) .
--cache.readbooleanfalse如果插件审计产出应从文件系统缓存中读取.
--cache.writebooleanfalse如果插件审计输出应当写入文件系统缓存.

持久性选项

选项类型默认说明
--persist.outputDirstring无编制报告目录.
--persist.filenamestringreport没有扩展的生成报告的文件名 .
--persist.format('json' | 'md')[]json报表文件的格式.
--persist.skipReportsbooleanfalse跳过生成报告文件 。 (有用与缓冲结合)

上传选项

选项类型默认说明
--upload.organizationstring无传送门的卫星.
--upload.projectstring无传送门的子弹.
--upload.serverstring无URL 到您的门户服务器 .
--upload.apiKeystring无门户网站服务器的 API 密钥 .

[注]
所有常见选项,但 --onlyPlugins 财务报告和审定财务报表 --skipPlugins,也可以在配置文件中指定. CLI 参数优先于配置文件选项.

[注]
这个 --upload.* 选项组适用于所有命令,但 collect。 。 。 .

图标

collect 命令

example of code-pushup terminal output

用法 : code-pushup collect [options]

说明 : 命令初始化并执行必要的插件并收集结果. 报告根据结果编写了一份综合报告.

参见 常见命令选项 的选项.

upload 命令

用法 : code-pushup upload [options]

说明 : 上传报告到代码PushUp门户网站.

参见 常见命令选项 的选项.

autorun 命令

用法 : code-pushup autorun [options]

说明 : 运行插件,收集结果并上传报告到代码PushUp门户网站.

参见 常见命令选项 的选项.

history 命令

用法 : code-pushup history

说明 : 运行插件, 收集结果并上传报告到代码 PushUp 门户, 用于指定数量的承诺 .

参见 常见命令选项 的选项.

选项类型默认说明
--targetBranchstring关键分行来爬行历史.
--forceCleanStatusbooleanfalse如果我们把状态重新设置为 干净的基特历史 强或不是.
--maxCountnumber页:1承诺数量.
--skipUploadsbooleanfalse上传创建的报告
--fromstring无历史的开始
--tostring无历史结束

compare 命令

用法 : code-pushup compare --before SOURCE_PATH --after TARGET_PATH [options]

说明 : 比较2份报告并生成报告 diff 文件 .

计外 常见命令选项,以下选项得到 compare 命令 :

选项类型默认说明
--beforestring.code-pushup/report-before.json [^1]来源路径 report.json。 。 。 .
--afterstring.code-pushup/report-after.json [^1]目标路径 report.json。 。 。 .
--labelstring不详 [^2]Diff的标签(例如项目名称).

[^1]:用途 persist 配置以决定报告路径, 因此默认文件路径实际上是 ${persist.outputDir}/${persist.filename}-before.json 财务报告和审定财务报表 ${persist.outputDir}/${persist.filename}-after.json。 。 。 .

[^2]:用途 label 从输入中 report.json 文件是两者具有相同的价值.

print-config 命令

用法 : code-pushup print-config [options]

说明 : 打印解析配置 .

计外 常见命令选项,以下选项得到 print-config 命令 :

选项需求类型说明
--output对string输出文件打印配置的路径 .

merge-diffs 命令

用法 : code-pushup merge-diffs --files PATH_1 PATH_2 ... [options]

说明 : 将多个报表 diff 合并为单个 report-diff.md。 。 。 .

计外 常见命令选项,以下选项得到 merge-diffs 命令 :

选项需求类型说明
--files对string[]清单 report-diff.json 路径.

缓存

CLI支持缓存以加速后续运行,并与Nx和Turborepo兼容.

根据策略,您可以缓存生成的报告文件或插件跑车输出. 对于精细的缓存,我们建议缓存插件跑跑器输出.

详细实例 Nx 缓存 财务报告和审定财务报表 涡轮缓冲 可在文档中查阅.

版本与发布记录

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

版本发布日期距今
0.126.4latest2026/09/111 个月前
0.126.32026/05/195 个月前
0.126.22026/03/317 个月前
0.126.12026/03/317 个月前
0.126.02026/03/307 个月前
0.125.02026/03/277 个月前

关于 @code-pushup/cli 的常见问题

@code-pushup/cli 是什么?

运行各种代码质量测量的 CLI 使您的团队符合公司目标

如何安装 @code-pushup/cli?

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

@code-pushup/cli 支持 TypeScript 吗?

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

@code-pushup/cli 支持 ESM 还是 CommonJS?

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

@code-pushup/cli 需要什么版本的 Node.js?

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

@code-pushup/cli 可以商用吗?

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

@code-pushup/cli 的下载量有多少?

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

@code-pushup/cli 还在维护吗?

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