# @ankhorage/apm 中文文档

规范地址：https://npmcn.com/package/%40ankhorage/apm/

版本：0\.8\.15
npm 元数据更新时间：2026-10-16T18:16:19.987Z
中文译文更新时间：2026-11-06T05:08:30.444Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40ankhorage/apm
原文对照：https://npmcn.com/package/%40ankhorage/apm/?lang=original
项目主页：https://github.com/ankhorage/apm#readme
源码仓库：https://github.com/ankhorage/apm

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

- 包体积（解压后）：1.6 MB，689 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：6 个
- peer 依赖：@ankhorage/ankh ^0\.13\.1
- 首次发布：2026-09-14T13:59:59.106Z
- 最新版本发布：2026-10-16T18:16:19.541Z
- 近 30 天下载量：94539（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：23（近 12 个月 23 个）

## 中文简介

无头项目更新分析、规划、执行、恢复和Ankhorage工具验证.

## 安装

```sh
npm install @ankhorage/apm
```

也可以使用：`pnpm add @ankhorage/apm`、`yarn add @ankhorage/apm`、`bun add @ankhorage/apm`

## README

# @ankhorage/apm (英语)

![license: MIT](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/license.svg) ![npm: v0.8.15](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/npm.svg) ![runtime: bun](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/runtime.svg) ![typescript: strict](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/typescript.svg) ![eslint: checked](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/eslint.svg) ![prettier: checked](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/prettier.svg) ![build: checked](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/build.svg) ![tests: checked](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/tests.svg) ![docs: paradox](https://npmcn.com/package/%40ankhorage/apm/paradox/badges/docs.svg)

无头项目更新分析、规划、执行、恢复和核查.

## 生成的文件

-   [交互式文件应用](https://npmcn.com/package/%40ankhorage/apm/paradox/index.html)
-   [公共 API 参考](https://npmcn.com/package/%40ankhorage/apm/paradox/exports.md)
-   [构成部分登记册](https://npmcn.com/package/%40ankhorage/apm/paradox/components.md)
-   [结构概览](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/architecture-overview.mmd)
-   [模块关系](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/module-relationships.mmd)
-   [导出图](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/export-graph.mmd)
-   [apm 序列](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/sequences/apm.mmd)
-   [创建 NpmRegistry Available 移植序列](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/sequences/create-npm-registry-availability-port.mmd)
-   [检查依赖性库存序列](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/sequences/inspect-dependency-inventory-async.mmd)
-   [验证 Package Update Metadata 序列](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/sequences/validate-package-update-metadata.mmd)
-   [验证更新扩展能力序列](https://npmcn.com/package/%40ankhorage/apm/paradox/diagrams/sequences/validate-update-extension-capabilities.mmd)

## 公共 API

### 公用事业

APM PLAN 港口

公布由APM实施的确定性规划保障和本地解析器矩阵.

`plan` 仅就被检查的项目读取。 软件包管理分辨率运行于 a 一次性装入目录并使用选定项目的本地npm、pnpm、Yarn或Bun 解决者。 生命周期脚本被禁用. 只返回已审查的表单和锁文件更改 (c) 组装/缓存/网络效应仍在项目树外.

默认的依赖性政策是保守的:只有直接的注册软件包有更新的版本 满足其已宣布的现有范围是自动选择的。 最近的主要,预发, 降级和准确的版本需要明确的选择,APM从不发明出新的护照范围. 明确的过渡性选择仍然只有锁;它们不被提升为根依赖.

本地解析器输出通过相同的软件包管理证据适配器重新检查 `status`。复制软件包实例、对等背景和工作空间链接保持其本地身份. 未知的文物来源、同行冲突、不支持的锁定/链接模式和未解决的目标 阻断器而不是部分可执行计划.

软件包拥有的迁移/预测规划人员可以要求更多的依赖选择。 亚太 通过一个有界限的固定点循环(默认的四次重复)解决那些问题。 冲突主人 中间diffs从不作为 可执行结果 。 所需的主机/扩展升级是明确的重启和再规划边界.

保存的计划包含精确的目标,审查的文件内容/diests,解析的图表/艺术身份, 命令步骤先决条件、执行人身份和语义输入指纹。 书记官处更新 时间戳与指纹有效性分开记录:刷新相同的登记处证据 不使原本相同的计划无效。 应用必须重新验证工程指纹和 执行器而不是重解 `latest`。 。 。 .

货运效应仍与源更新分开. 特别是依赖性图表的变化 从未假定OTA安全;没有包/平台证据 APM将OTA的资格记录为 `unknown`。 。 。 .

模块 : `src/features/plan/constants/support.ts` 资料来源: `src/features/plan/constants/support.ts:34:14`

APM STATUS 苏维埃

发布证据适配器所证明的精确只读状态矩阵 .

运行时间:APM需要节点24或更新. 开发用途 1.4.2号舱,但检查客户 项目可使用下文中明确支持的任何管理器.

普通 JavaScript 和 TypeScript 工程不需要 `ankh.config.json`杀伤人员地雷产生的包件, 工作空间和来自项目检测器的软件包管理证据加软件包管理本地文件. 检测到的非JavaScript生态系统仍只检查,直到一个明确的APM适配器拥有为止 它们的依赖语义; 它们永远不会成为虚假的完整/当前的结果.

安装根选择基于证据 。 明确 `packageManager` 声明胜出 lockfile heuristics 而来自其他管理人员的 stale lockfile 仍然是诊断证据. 若为 多个管理器锁文件存在, 没有明确的选择, 根有冲突 不完整 。 携带自己管理器/锁定证据的嵌入式包独立化 安装根而不是被折叠到父工作空间.

npm:包锁 v2和v3被解析. npm记录的物理节点 模块位置是: 检查时没有执行软件包代码 。 检测到包锁v1,但仍只检查. 复制版本仍然是单独的物理软件包实例,依赖边缘保留 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}他们实际上决心要证明身份.

pnpm: 解析了锁文件 v9, 包括导入根, 包/ snapshot 实例身份, 工作空间链接和对等文本后缀。 从 pnpm 虚拟确认已安装状态 存储锁定当存在时;未知/客户布局保持清晰。 因此,同级变量依然存在 不同的软件包实例,而不是被软件包名称所崩溃.

Yarn:Berry锁定元数据v8解析. `nodeLinker: node-modules` 用途 `.yarn-state.yml`· ; `nodeLinker: pnp` 读取 `.pnp.data.json` 当存在且从未执行 `.pnp.cjs`。一个内衬 因此,PnP地图在设计上仍然不完整。 Yarn Classic和Yarn的pnpm连接器被检测到 但是在本版中没有作为完整的清单模式提出.

Bun: 文本 `bun.lock` v1和v2被解析. Bun的隔离 `.bun` 存储和普通节点链接为 作为数据检查。 锁定的锁道密钥保留了嵌入式和放入式包件;安装了 身份/版本不匹配仍然是明显不完整的证据。 二进制 `bun.lockb` 而未知的锁版本只是检查而已.

从项目/用户npmrc和 环境覆盖。 证书只在 HTTP 边缘使用,从未返回 报告。 查找复制注册名, 保留每个实例已宣布的制约, 然后运行 以最多8个请求(可配置 1–64)进行批次,默认预算为4096名. 主机可以通过一个配置的注册可用端口 `statusProjectAsync`; 超过 明确的预算使未加注的一揽子计划不明,而不是将它们从报告中删除. 离线缓存缺失, 注册/ 自动/ 网络故障导致可用性未知 .

`status` 财务报告和审定财务报表 `plan` 只读项目操作。 状态读取列表,锁文件, 安装元数据和登记册数据。 计划仅在下列情况下执行软件包管理本地解析 一次性中转和收益审查,不写被检查项目。 也没有 操作执行项目生命周期钩或迁移. `apply` 财务报告和审定财务报表 `verify` 保持单独 路线图操作.

模块 : `src/features/status/constants/support.ts` 资料来源: `src/features/status/constants/support.ts:52:14`

状态同步

```ts
statusAsync(input: ApmStatusInput, ports: ApmStatusPorts) => Promise<ApmStatusResult>
```

在不改变被检查项目的情况下,建立基于证据、可序列的杀伤人员地雷状态.

项目探测器证据、包管理库存、登记册 以及外出港口后可选的包式投影/迁移证据. 缺少或部分证据为货币 `unknown`它永远不会变成绿色的当前结果. 主机可以在不设终端的情况下调用这个边界,并且可以用定型假端口进行测试.

模块 : `src/features/status/application/statusAsync.ts` 资料来源: `src/features/status/application/statusAsync.ts:20:1` 相关符号 : `ApmStatusInput`, (中文(简体) ), `ApmStatusPorts`, (中文(简体) ), `ApmStatusResult`

## 常见问题

### @ankhorage/apm 是什么？

无头项目更新分析、规划、执行、恢复和Ankhorage工具验证\.

### 如何安装 @ankhorage/apm？

在项目目录运行 npm install @ankhorage/apm，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 apm，可以用 npx apm 直接运行。

### @ankhorage/apm 支持 TypeScript 吗？

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

### @ankhorage/apm 支持 ESM 还是 CommonJS？

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

### @ankhorage/apm 需要什么版本的 Node\.js？

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

### @ankhorage/apm 可以商用吗？

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

### @ankhorage/apm 的下载量有多少？

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

### @ankhorage/apm 还在维护吗？

最新版本 0\.8\.15 发布于 2026/10/17（20 天前）；至今共发布 23 个版本，其中过去 12 个月发布了 23 个；首次发布于 2026/09/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

