@ferrflow/darwin-x64

中文文档
7.36.1发布于 2026/11/13MIT零依赖构建来源已验证近 30 天下载 3846

FerrFlow macOS x64 二进制

中文使用文档
文档目录32 节
  1. 为什么是费弗洛?
  2. 支持的版本文件
  3. 安装
  4. 使用量
  5. 配置
  6. 杰森·斯克马
  7. JSON( 默认)
  8. 杰森5号
  9. 移动
  10. 单曲
  11. 版本战略
  12. 1.0起起伏前规则
  13. 标记模板
  14. 释放前通道
  15. CLI 旗帜
  16. 基于分支的配置
  17. 识别战略
  18. 行为
  19. 释放提交模式
  20. 发布提交范围
  21. 跳过 CI
  22. 怎么样 pr 模式发布
  23. 回滚
  24. 浮动标记
  25. 孤儿标签策略
  26. 恢复缺失的释放
  27. 软件包依赖性
  28. 钩子
  29. 常规武器委员会
  30. CI 用户
  31. 使用主机( ferrflow[bot])
  32. 许可证

飞花

通用语义版本为单发和经典再发.

读取您的 常规武器委员会正确的版本颠倒,
更新您的版本文件, 写入更改日志, 并剪切标记的发布 。 任何语言,任何回波布局.

Latest release CI Quality Gate Maintainability Security License OpenSSF Scorecard Conventional Commits Socket Badge

文档 | 更改日志 | GitHub 应用程序

为什么是费弗洛?

一个编译的二进制,没有运行时间安装. 原生单列波支持, 16个版本文件格式 跨越下面的每一个生态系统, 它的工作 与任何布局 你已经的回波.

ferrflow release

这就是整个发行:出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出.

支持的版本文件

格式文件生态系统选择器
tomlCargo.toml锈package.version
tomlpyproject.toml蟒project.version 或者说 tool.poetry.version
jsonpackage.json节点.jsversion
jsoncomposer.json前一頁version
xmlpom.xml爪哇/ 马文第一个 <version> 这是根元素的直生子( skips) <parent> 和附属关系)
csproj*.csproj.NET (C#, F#) (中文(简体) )<Version> 内 <PropertyGroup>
gradlebuild.gradle, (中文(简体) ), build.gradle.kts爪哇语 / Kotlinversion = "…"
helm 编号 : chartyamlChart.yaml库伯内特斯/赫尔姆顶级 version:
pubspecyamlpubspec.yaml达特/ 小蝶顶级 version:
galaxyymlgalaxy.yml可解析收藏顶级 version:
mixexsmix.exs埃利克斯尔version: "…" 内 def project
gemspec*.gemspec鲁比s.version = "…"
packageswiftPackage.swift挥发顶级 let <name>Version = "…"
cabal*.cabal哈斯凯尔顶级 version: 字段
cmakeCMakeLists.txtC / C++ 数据VERSION 论点 project()
gomodgo.mod走开只有 git 标记, 没有文件写入
txtVERSION, (中文(简体) ), VERSION.txt任意整个文件内容

安装

货物

cargo install ferrflow

无

npm install -D ferrflow

夹克

docker run --rm -v "$PWD:/repo" ghcr.io/ferrlabs/ferrflow:latest check

图像以非根用户方式运行( I)ferrflow, uid 1000), 并致力于 /repo它载运 git, (中文(简体) ), 相信出票人谁拥有它, 和标志释放承诺 FerrFlow <[email protected]> 除非 GIT_AUTHOR_NAME 编号 : GIT_AUTHOR_EMAIL 或仓库本身 user.* 化相别说. FerrFlow 仍然需要写入它撞出的文件, 所以如果您的退票是另一个人所有 迪德,通过自己的:

docker run --rm -u "$(id -u):$(id -g)" -v "$PWD:/repo" ghcr.io/ferrlabs/ferrflow:latest check

预建二进制

从 释放。 。 。 .

使用量

# Preview what would be bumped
ferrflow check

# Adjust the plan, then get the command that reproduces it
ferrflow plan --interactive

# Run a release
ferrflow release

# Dry run
ferrflow release --dry-run

# Force a specific version (skips commit analysis)
ferrflow release --force-version 2.0.0          # single repo
ferrflow release --force-version [email protected]      # monorepo

# Repeatable in a monorepo, and packages can be left out entirely
ferrflow release --force-version [email protected] --force-version [email protected]
ferrflow release --exclude web --exclude docs

# Pre-release
ferrflow release --channel beta

# Undo a release that failed partway
ferrflow rollback                    # prints the plan, changes nothing
ferrflow rollback --yes              # applies it
ferrflow rollback --yes api web      # only these packages

# Scaffold a config file
ferrflow init

# Scaffold a config file in a specific format
ferrflow init --format json5

# Use a specific config file
ferrflow check --config path/to/ferrflow.toml

# Or set via environment variable
FERRFLOW_CONFIG=path/to/ferrflow.toml ferrflow check

# Print current version
ferrflow version              # single repo
ferrflow version api          # monorepo, specific package

# Print last release tag
ferrflow tag
ferrflow tag api

# Print the dependency graph, the release order, and any cycle
ferrflow graph
ferrflow graph --json

# See what releasing a package would drag along with it
ferrflow graph --impact shared
ferrflow graph --impact shared --bump major

# Compare each package's public API against its last tag (Rust: needs cargo-semver-checks)
ferrflow api-check
ferrflow api-check --json

# JSON output (for scripting)
ferrflow version --json
ferrflow tag --json

# Shell completions
ferrflow completions bash >> ~/.bash_completion
ferrflow completions zsh  > ~/.zfunc/_ferrflow
ferrflow completions fish > ~/.config/fish/completions/ferrflow.fish

预生成的补全脚本也可作为 ferrflow-completions.tar.gz 每个 GitHub 发布。 。 。 .

配置

FerrFlow 在您的仓库根部寻找一个配置文件, 按此顺序 :

  1. ferrflow.json
  2. ferrflow.json5
  3. ferrflow.toml
  4. .ferrflow (点文件, JSON 格式)

如果存在多个配置文件,FerrFlow退出时会出现列出相冲突文件的错误. 使用 --config <path> (或 FERRFLOW_CONFIG env var)可指定使用哪个. 如果没有找到配置文件, FerrFlow 自动检测在当前目录中的常见版本文件.

运行 ferrflow init 以交互方式将配置文件脚手架化。 使用 --format 以跳过格式提示 :

ferrflow init                  # asks which format (default: json)
ferrflow init --format json5
ferrflow init --format toml
ferrflow init --format dotfile # generates .ferrflow

已经使用语义释放? ferrflow migrate 读取您已有的配置并生成等效 ferrflow.json数字 :

ferrflow migrate                        # auto-detects .releaserc
ferrflow migrate --from semantic-release

地图 tagFormat, (中文(简体) ), branches,以及常见插件(changelog, (中文(简体) ), exec, (中文(简体) ), github编号 :gitlab)到他们的FerrFlow等同物,并打印出地图的概要,什么被忽略,什么需要人工审查. 任何没有FerrFlow当量的东西都会浮出水面,永远不会被猜到. 贾森 .releaserc 今天被支持; YAML .releaserc 和联署材料 release.config.js 被报告为无支持而非错分.

ferrflow migrate --from release-please 地图 extra-files (单位:千美元)generic 标记为 a txt 选择器, toml 打开 Cargo.toml 财务报告和审定财务报表 json 打开 $.version 其形式, bump-minor-pre-major 财务报告和审定财务报表 bump-patch-for-minor-pre-major 改为 preMajor (单位:千美元)breaking: minor, (中文(简体) ), feat: patch),并写作 autoMergeReleases: false 请永远不要合并其发布 PR。 当一个版本的运单有一个时, 可启用锁定文件更新 。 它无法表达的条目列在"手动审查"下. 只有非默认密钥被写入 .

杰森·斯克马

添加 $schema 在 VS 代码、 WebStorm 和任何 JSON 意识编辑器中获取自动补全和验证:

{
  "$schema": "https://ferrflow.com/schema/ferrflow.json"
}

JSON( 默认)

{
  "$schema": "https://ferrflow.com/schema/ferrflow.json",
  "workspace": {
    "remote": "origin",
    "branch": "main"
  },
  "package": [
    {
      "name": "my-app",
      "path": ".",
      "changelog": "CHANGELOG.md",
      "versionedFiles": [
        { "path": "package.json", "format": "json" }
      ]
    }
  ]
}

杰森5号

{
  workspace: {
    remote: "origin",
    branch: "main",
  },
  package: [
    {
      name: "my-app",
      path: ".",
      changelog: "CHANGELOG.md",
      versionedFiles: [
        { path: "package.json", format: "json" },
      ],
    },
  ],
}

移动

[workspace]
remote = "origin"
branch = "main"

[[package]]
name = "my-app"
path = "."
changelog = "CHANGELOG.md"

[[package.versioned_files]]
path = "Cargo.toml"
format = "toml"

单曲

贾森
{
  "package": [
    {
      "name": "api",
      "path": "services/api",
      "changelog": "services/api/CHANGELOG.md",
      "sharedPaths": ["services/shared/"],
      "versionedFiles": [
        { "path": "services/api/Cargo.toml", "format": "toml" }
      ]
    },
    {
      "name": "frontend",
      "path": "frontend",
      "changelog": "frontend/CHANGELOG.md",
      "versionedFiles": [
        { "path": "frontend/package.json", "format": "json" }
      ]
    }
  ]
}
移动
[[package]]
name = "api"
path = "services/api"
changelog = "services/api/CHANGELOG.md"
shared_paths = ["services/shared/"]

[[package.versioned_files]]
path = "services/api/Cargo.toml"
format = "toml"

[[package]]
name = "frontend"
path = "frontend"
changelog = "frontend/CHANGELOG.md"

[[package.versioned_files]]
path = "frontend/package.json"
format = "json"

每个软件包一个文件

一个大型的单列波不需要在根配置中保留每个包. 列出每个包装文件 下级 include,每个项目都有自己的设置:

{
  "workspace": { "versioning": "semver" },
  "include": ["services/*/ferrflow.json", "frontend/ferrflow.json"]
}
{
  "name": "api",
  "changelog": "CHANGELOG.md",
  "sharedPaths": ["../shared/"],
  "versionedFiles": [{ "path": "Cargo.toml", "format": "toml" }]
}

包含的文件中的路径与该文件相对,并且 path 默认其目录。 这个 以上示例不需要 path数字 : services/api/ferrflow.json 在 services/api,移动目录不需要编辑任何内容.

包含的文件使用与 a 相同的密钥 package 输入,所以 dependsOn 仍然指由 名称和工作跨越文件。 它们可能使用不同于根配置的格式,它们可以是 与内线相混合 package 迁移时的数组.

以下内容遭到拒绝,而不是被默默地忽略: include 模式匹配无文件, 二 软件包共享名称,并包含一个文件声明 workspace, (中文(简体) ), include,或 package。 。 。 .

包含的文件有自己的计划,所以编辑器自动完成并验证它们:

{
  "$schema": "https://ferrflow.com/schema/ferrflow-package.json",
  "name": "api"
}

ferrflow schema --package 在本地写入同样的计划, 用于重置, 不愿获取它 .

版本战略

每个软件包都可以使用自己的版本策略. 在工作空间级别设置默认值并覆盖每个软件包 :

[workspace]
versioning = "semver"  # default for all packages

[[package]]
name = "api"
path = "packages/api"
# inherits semver from workspace

[[package]]
name = "site"
path = "packages/site"
versioning = "calver"  # override: date-based
战略格式示例说明
semverMAJOR.MINOR.PATCH1.4.2由常规承诺驱动的默认
calverYYYY.M.D2025.3.28基于日期, 忽略承诺类型
calver-shortYY.M.D25.3.28压缩日期
calver-seqYYYY.M.SEQ2025.3.3日期+每日序列计数器
calver-short-seqYY.M.SEQ25.3.3压缩日期+序列计数器
sequentialN42简单增量建筑编号
zerover0.MINOR.PATCH0.15.2永远不稳定,从不点击1.0

1.0起起伏前规则

默认a semver 项目跳转到 1.0.0 在它的第一个突破变化。 设定 preMajor 在 0.x 中保留: 而当前主要为 0,一个破碎的改变 撞出什么 breaking 说和a feat 颠倒什么 feat 说(minor 或者说 patch) (中文(简体) ). fix 不变.

[workspace]
versioning = "semver"

[workspace.preMajor]
breaking = "minor"
feat = "patch"

从 0.5.0数字 : feat! 给 0.6.0, (中文(简体) ), feat 财务报告和审定财务报表 fix 给 0.5.1。这个匹配的释放 - 请 bump-minor-pre-major 加号 bump-patch-for-minor-pre-major。从 1.0.0 它没有效果 ferrflow release --force-version 1.0.0 离开0.x。 包可以用自己的包来覆盖它 preMajor。未设置保留标准规则.

标记模板

默认情况下, FerrFlow 标记单回放为 v1.2.3 和单体释放 [email protected]。自定义 tag_template 使用 {name} 财务报告和审定财务报表 {version} 占位符 .

[workspace]
tag_template = "v{version}"  # all packages: v1.2.3

[[package]]
name = "api"
path = "packages/api"
tag_template = "{name}/v{version}"  # override: api/v1.2.3
版式默认模板示例标签
单还原v{version}v1.2.3
单曲{name}@v{version}[email protected]
自定义release-{version}release-1.2.3

释放前通道

使用“apha、β、rc、dev”发布前版本 --channel 旗帜或基于分支的配置。 发行前版本遵循格式 MAJOR.MINOR.PATCH-CHANNEL.IDENTIFIER。 。 。 .

CLI 旗帜

ferrflow release --channel beta       # 2.0.0-beta.1
ferrflow check --channel rc           # preview pre-release version

基于分支的配置

自动将分支映射到频道 :

{
  "workspace": {
    "branches": [
      { "name": "main", "channel": false },
      { "name": "develop", "channel": "dev", "prereleaseIdentifier": "timestamp" },
      { "name": "release/*", "channel": "rc" }
    ]
  }
}

分支名称支持 glob 模式 。 初相会胜. 通关卡匹配 / 分离器,所以 * 匹配树枝类似 fix/global 财务报告和审定财务报表 feature/* 匹配 feature/auth/oauth。 。 。 .

识别战略

战略示例说明
increment-beta.3自动递增计数器( 默认)
timestamp-dev.20250402T1430UTC时间戳
short-hash-dev.a1b2c3d短长的散列
timestamp-hash-dev.20250402T1430-a1b2c3d时间戳+散列

行为

  • 浮标( 如. v1, (中文(简体) ), v1.2) 从未被预发版本所移动
  • GitHub 释放标记为释放前
  • 稳定释放包括自上个稳定标签以来的所有承诺(抽取预释放标签)
  • 虎克环境包括: FERRFLOW_CHANNEL 财务报告和审定财务报表 FERRFLOW_IS_PRERELEASE

释放提交模式

控制FerrFlow在发布后如何执行版本突起和更改log更新.

[workspace]
release_commit_mode = "commit"  # default
模式说明
commit直接对分支执行释放
pr随发布更改创建拉动请求
none完全跳过执行( 当其他工具处理时有用)

使用时 pr 模式, auto_merge_releases 控制 PR 是否自动合并 :

[workspace]
release_commit_mode = "pr"
auto_merge_releases = true  # default

发布提交范围

在单雷波模式下,控制所有软件包的突起是进入单个承诺还是每个软件包一个承诺:

[workspace]
release_commit_scope = "grouped"  # default
范围说明
grouped所有软件包的单项承诺(例如:. chore(release): api v1.0.0, site v2.1.0(中文(简体) )
per-package每包一个承诺(例如:. chore(release): api v1.0.0,则 chore(release): site v2.1.0(中文(简体) )

每个包件都承诺,这样就更容易在不影响到其他包件的情况下还原一个包件。 这对双方都有用 commit 财务报告和审定财务报表 pr 释放模式.

跳过 CI

默认情况下,释放承诺 commit 模式包含 [skip ci] 在信件中避免触发 CI 循环。 覆盖 skip_ci数字 :

[workspace]
skip_ci = false  # force CI to run on release commits

单位 pr 模式, skip_ci 默认为 false 因为公关合并 触发CI自然.

怎么样 pr 模式发布

pr 模式分两个阶段运行,所以没有为尚未被接受的发布发布任何内容.

这个 提议 运行计算凸起,将版本文件和更改日志写入发布 分支,并打开或更新拉动请求。 没有创建标签,也没有发布发布. 以后每一次对目标分支的承诺都会使分支再生,所以开放的公关会不断跟踪该分支 现在的版本.

这个 定稿 运行发生在 PR 合并后 。 弗劳看到一个 chore(release): 承诺 目标分支,其版本没有标记,在发布前精确标记这些版本 释放 这些版本是从版本文件读取的,从未重制过,所以合并了一个发布 PR 无法再连入一团 平分合并和合并都承担了两项工作.

未声明的软件包 versionedFiles 没有可读的版本,所以它不会以这种方式定稿. 使用 commit 模式.

回滚

释放失败的左侧叶片标记被推开,伪造释放物被创建,释放物被承诺 树枝. ferrflow rollback 完全取消跑步时所做的,读读它留下的检查站 而不是从日志上猜测.

ferrflow rollback

它印出计划 并改变什么。 添加 --yes 应用它。 名称包将其缩小为 子集;没有子集,它会将所触碰的都卷回.

三事其故意拒绝.

它从不删除已移动的标签 。 每个标记都记录在它指向的承诺和 遥控器在回滚时被询问,以检查它在那里的还剩点。 一个不再匹配,或 报告并跳过: 标记他人 在此期间重建的不是要删除的运行.

它停留在已经发布到无法被发布到注册的软件包上. 箱子.io和PyPI 永远保留每个版本, npm 拒绝重印一个未公布的版本, 因此删除标签 将留下一个版本 任何人都可以安装 而没有任何指针。 正确的答案是一个新的 补丁版本,回滚说 而不是做一半的工作。 Docker 标记、 Helm 图表, 发布 资产和网络用户是可以替换的,所以不会屏蔽任何东西.

它恢复了释放 仅仅在全程回滚 没有任何障碍。 承诺携带 每个软件包的版本出出出出出出出出出出出出出出出出出出回放 那个包裹的版本.

退款是故意不给遥控器的。 后退刚刚删除了远程参考器 强迫一个分支更新 上面是值得做的决定 与分支在你面前.

浮动标记

移动缩写标记(例如. v1, (中文(简体) ), v1.2) 总是指向最新的匹配发布:

[workspace]
floating_tags = ["major"]  # creates/moves v1 when releasing v1.2.3
职等标记指点
majorv1最新 v1.x.x
minorv1.2最新 v1.2.x

浮标从不被发行前版本所移动. 每包覆盖 :

[[package]]
name = "api"
path = "packages/api"
floating_tags = ["major", "minor"]

孤儿标签策略

经过再基+力-推后,已存在的标记可能指向已不存在于分支上的承诺. orphaned_tag_strategy 控制 FerrFlow 如何处理此操作 :

[workspace]
orphaned_tag_strategy = "warn"  # default
战略说明
warn登录警告并跳过已忽略的标签
treeHash通过匹配承诺的树散来尝试恢复
message通过匹配承诺消息试图恢复

恢复缺失的释放

在monrepos中,如果一个软件包的文件被更改了,但FerrFlow没有运行,它可能会错过发布. 启用 recover_missed_releases 将文件与上一个标记比较, 而不是仅仅将上一个标记比较 :

[workspace]
recover_missed_releases = true  # default: false

软件包依赖性

在单曲中,使用 depends_on 当其依赖性之一发布时自动补丁跳出软件包:

{
  "package": [
    { "name": "core", "path": "packages/core" },
    {
      "name": "cli",
      "path": "packages/cli",
      "depends_on": ["core"]
    }
  ]
}

何时 core 被撞伤了, cli 即使没有直接承诺 也会有补丁.

钩子

在发布时运行 shell 命令于生命周期点 。 钩可以设置在工作空间级别(适用于所有软件包)或每个软件包:

[workspace.hooks]
pre_bump = "echo 'about to bump'"
post_bump = "cargo check"
pre_commit = "npm run build"
pre_publish = "npm pack --dry-run"
post_publish = "notify-slack.sh"
on_failure = "abort"  # or "continue"
钩子何时
pre_bump在拼接计算后, 在写入版本文件之前
post_bump写入版本文件后, 更改日志生成前
pre_commit转换日志生成后, 在 git 承诺之前
pre_publish在承诺和标记之后,在推前
post_publish推后发布创建

如果钩子退出非零和 on_failure 实值 abort (默认),发布取消. 设定 on_failure 改为 continue 忽略钩子故障.

Hook 命令接收环境变量 : FERRFLOW_PACKAGE, (中文(简体) ), FERRFLOW_OLD_VERSION, (中文(简体) ), FERRFLOW_NEW_VERSION, (中文(简体) ), FERRFLOW_BUMP_TYPE, (中文(简体) ), FERRFLOW_TAG, (中文(简体) ), FERRFLOW_PACKAGE_PATH, (中文(简体) ), FERRFLOW_DRY_RUN, (中文(简体) ), FERRFLOW_CHANNEL, (中文(简体) ), FERRFLOW_IS_PRERELEASE。 。 。 .

常规武器委员会

飞花读取 常规武器委员会 决定撞出多远. 光谱是您的历史和版本号之间的合同:写出前缀,而出自它的凸起,更改日志和标记部分.

前缀弹出
fix:, (中文(简体) ), perf:, (中文(简体) ), refactor:补丁
feat:小声
feat!:, (中文(简体) ), BREAKING CHANGE主要
chore:, (中文(简体) ), docs:, (中文(简体) ), ci:无

默认是故意允许的,因此从未执行光谱的回扣仍然会得到明智的起伏:资本化和斜分化变体(英语:Feat:, (中文(简体) ), Feat/, (中文(简体) ), feature:, (中文(简体) ), Fix/, (中文(简体) ), Perf:, (中文(简体) ), Refactor/,等等)与克能克表一起被接受. 如果您的历史使用不同的惯例,请重新绘制 commitFormats。 。 。 .

默认情况下没有地图可以主修 。 一个大起落只来自结构断裂标记(feat!:, (中文(简体) ), fix(api)!:,或一个 BREAKING CHANGE: foder),这些总是被检测到的,无论您配置了什么,所以一个承诺不能通过自定义模式而失去其破解状态.

全文 : ferrrflow.com/docs/参考/常规承诺。 。 。 .

CI 用户

GitLab CI 语录

release:
  image: ghcr.io/ferrlabs/ferrflow:latest
  script:
    - ferrflow release
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'

GitHub 动作

- name: Release
  run: ferrflow release
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

随着行动,门 释放后的步骤 released 产出(releases 持有标记包的 JSON 阵列 :

- uses: FerrLabs/FerrFlow@v7
  id: release
- name: Publish
  if: steps.release.outputs.released == 'true'
  run: npm publish

使用主机( ferrflow[bot])

安装 FerrFlow GitHub 应用软件 然后选择使用 bot: true。释放承诺、标记和 GitHub 释放由 ferrflow[bot] 和由这些事件所触发的下游工作流程正常运行(与默认不同) GITHUB_TOKEN压制他们.

permissions:
  id-token: write
  contents: read

steps:
  - uses: actions/checkout@v6
    with:
      fetch-depth: 0
  - uses: FerrLabs/FerrFlow@v7
    with:
      bot: true

这就是整个工作。 没有 setup-node,没有额外的依赖。 FerrFlow的Rust 二进制直接处理OIDC交换机,所以最小的自托管跑取器在箱外工作.

支持三个认证模式: bot: true 使用主机FerrFlow App(建议); token: <PAT> 使用个人访问令牌或您自己的 GitHub App 令牌( DIY) ; 省略两者回到工作流程中 GITHUB_TOKEN (最简单,但发布事件不会触发下游工作流程).

在GitHub上,释放承诺是通过伪造而不是由当地git书写,当 bot: true 被设定,这就是它显示为 已核实。一个 GitHub App 无法注册签名密钥, 所以让 GitHub 作者签名是其签名的唯一方式 。 GitHub 只有在请求中没有习惯作者、承诺者或签名时才这样做,因此,该承诺归于 ferrflow[bot] 没有别的了.

其他地方,没有 bot: true承诺和以前一样是由本地的git建造的 如果你想根据自己的身份来核实犯罪,请设定 commit.gpgsign 弗勒弗勒将依每样铸造它.

附加说明的标记仍然被git所创建并被推出,所以它们不被这个所覆盖. 只有承诺才是.

许可证

麻省理工学院

版本与发布记录

@ferrflow/darwin-x64 共发布 280 个版本,首次发布于 2026/03/30;过去 12 个月发布了 280 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
7.36.1latest2026/11/131 天前
7.36.02026/11/104 天前
7.35.62026/11/104 天前
7.35.52026/11/104 天前
7.35.42026/11/095 天前
7.35.32026/10/3114 天前

关于 @ferrflow/darwin-x64 的常见问题

@ferrflow/darwin-x64 是什么?

FerrFlow macOS x64 二进制

如何安装 @ferrflow/darwin-x64?

在项目目录运行 npm install @ferrflow/darwin-x64,或使用 pnpm add / yarn add / bun add。

@ferrflow/darwin-x64 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/ferrflow__darwin-x64 是否存在。

@ferrflow/darwin-x64 可以商用吗?

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

@ferrflow/darwin-x64 的下载量有多少?

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

@ferrflow/darwin-x64 还在维护吗?

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