# @equinor/fusion-framework-cli 中文文档

规范地址：https://npmcn.com/package/%40equinor/fusion-framework-cli/

版本：15\.7\.3
npm 元数据更新时间：2026-11-12T09:59:41.652Z
中文译文更新时间：2026-11-13T20:18:28.450Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40equinor/fusion-framework-cli
原文对照：https://npmcn.com/package/%40equinor/fusion-framework-cli/?lang=original
源码仓库：https://github.com/equinor/fusion-framework

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

- 包体积（解压后）：1.3 MB，319 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.22\.2
- 运行依赖：20 个
- 首次发布：2022-11-03T17:57:29.222Z
- 最新版本发布：2026-11-12T09:59:41.100Z
- 近 30 天下载量：10705（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：477（近 12 个月 112 个）

## 中文简介

暂无中文简介

## 安装

```sh
npm install @equinor/fusion-framework-cli
```

也可以使用：`pnpm add @equinor/fusion-framework-cli`、`yarn add @equinor/fusion-framework-cli`、`bun add @equinor/fusion-framework-cli`

## README

# @ equinor/ 聚变框架- cli

用于开发、建设和出版Fusion框架应用程序和门户网站模板的命令行工具包。 提供从地方发展到生产部署的统一开发者经验.

## 特征

-   **应用程序脚手架** ——从预定义模板生成新的聚合应用
-   **开发服务器** ——有服务发现和认证的热重装dev服务器
-   **构建捆绑( B)** ——以维特为主的生产建设有明显的出产地
-   **发布标签( T)** ——上传捆绑和配置到Fusionapp/portal服务
-   **抓图版本** 时间戳预览为公关和CI构建(`--snapshot`(中文(简体) )
-   **门户模板** ——构建,捆绑,并部署门户配置
-   **服务发现** 解决来自任何环境的融合服务终点
-   **认证** – Azure AD 登录,指使管理,CI/CD指使支持
-   **插件系统** ——以可选插件包扩展 CLI

## 安装

```sh
pnpm add -D @equinor/fusion-framework-cli
```

该套件暴露出两个二进制别名: `fusion-framework-cli` 财务报告和审定财务报表 `ffc`。 。 。 .

## 使用量

### 创建新应用程序

```sh
# Interactive template selection
pnpm fusion-framework-cli app create my-app

# Use a specific template
pnpm fusion-framework-cli app create my-app --template react-app
```

### 地方发展

```sh
# Start the dev server (app)
pnpm fusion-framework-cli dev

# Start the dev server (portal)
pnpm fusion-framework-cli portal dev
```

### 构建和出版

```sh
# Build an application
pnpm fusion-framework-cli app build

# Bundle into a zip archive
pnpm fusion-framework-cli app pack

# Publish bundle + config to an environment
pnpm fusion-framework-cli app publish --env ci --config

# Snapshot build for a PR
pnpm fusion-framework-cli app pack --snapshot pr-123
```

### 认证

```sh
# Interactive login
pnpm fusion-framework-cli auth login

# Retrieve a token
pnpm fusion-framework-cli auth token

# CI/CD: set FUSION_TOKEN environment variable instead
```

### 命令概览

| 命令 | 说明 |
| --- | --- |
| `app create` | 脚手架从模板中创建新的融合应用程序 |
| `app build` | 用 Vite 构建应用程序 |
| `app pack` | 将建筑装入 zip 归档 |
| `app publish` | 一步一步构建、打包和上传 |
| `app upload` | 上传一个预建的捆绑 |
| `app config` | 生成或发布应用程序配置 |
| `app tag` | 标记已公布的版本(例如:. `latest`(中文(简体) ) |
| `app check` | 验证应用程序在应用程序商店中的注册 |
| `app dev` | 启动应用程序 dev 服务器 |
| `app serve` | 预览本地生产架构 |
| `portal build` | 建立门户模板 |
| `portal pack` | 将门户装入zip归档 |
| `portal publish` | 构建、包装和上传门户 |
| `portal upload` | 上传一个预建的门户捆绑 |
| `portal config` | 生成或发布门户配置 |
| `portal tag` | 标记已公布的门户网站版本 |
| `portal dev` | 启动门户dev服务器 |
| `auth login` | 以 Azure AD 认证 |
| `auth logout` | 清除存储的证书 |
| `auth token` | 打印或获取访问令牌 |
| `disco resolve` | 解决聚合服务端点 |

运行 `pnpm fusion-framework-cli <command> --help` 详细选项.

## API 参考

该套件暴露出若干次路径出口供方案使用:

### `@equinor/fusion-framework-cli` (基层)

-   `defineDevServerConfig` 编号 : `defineFusionCli` – 类型安全配置帮助器
-   `loadDevServerConfig` – 加载并合并dev-server配置文件
-   `resolvePackage` 编号 : `resolveEntryPoint` 包件和切入点分辨率
-   `RuntimeEnv` 整个CLI使用的运行时环境类型

### `@equinor/fusion-framework-cli/app`

-   `defineAppManifest` 编号 : `defineAppConfig` · 类型安全表和配置助手
-   `loadAppManifest` 编号 : `loadAppConfig` ——加载和验证app 显示/配置文件
-   `createAppManifestFromPackage` - 生成一份清单 `package.json`
-   `mergeAppManifests` 编号 : `mergeAppConfig` - 深层显示/配置对象
-   `ApiAppConfigSchema` 用于应用配置验证的 Zod schema

### `@equinor/fusion-framework-cli/portal`

-   `definePortalManifest` 编号 : `definePortalConfig` 编号 : `definePortalSchema` - 类型安全帮助者
-   `loadPortalManifest` 编号 : `loadPortalConfig` 编号 : `loadPortalSchema` ——装入并验证文件
-   `createPortalManifestFromPackage` - 建立一个门户,显示来自 `package.json`
-   `validatePortalManifest` 证实一份反对Zod计划的清单

### `@equinor/fusion-framework-cli/bin`

-   `buildApplication` 编号 : `buildPortal` ——方案Vite建设
-   `bundleApp` 编号 : `bundlePortal` - 将+包制成拉链
-   `uploadApplication` 编号 : `uploadPortalBundle` ——上传捆绑到服务中
-   `tagApplication` 编号 : `tagPortal` ——标签已发布版本
-   `initializeFramework` 编号 : `configureFramework` 建立CLI业务融合框架
-   `FusionEnv` ——被支持的融合环境之谜

### `@equinor/fusion-framework-cli/utils`

-   `assert` 编号 : `assertFileExists` 编号 : `assertObject` - 主张助手
-   `fileExists` 编号 : `fileExistsSync` ——档案存栏检查
-   `writeFile` ——用自动目录创建写入文件
-   `resolveAnnotations` ——解决CI/CD建设说明
-   `generateSnapshotVersion` ——创建时间戳快照版本

## 配置

### 申请表`app.manifest.ts`(中文(简体) )

```ts
import { defineAppManifest } from '@equinor/fusion-framework-cli/app';

export default defineAppManifest((env, { base }) => ({
  ...base,
  // override manifest fields here
}));
```

### 应用程序配置( E)`app.config.ts`(中文(简体) )

```ts
import { defineAppConfig } from '@equinor/fusion-framework-cli/app';

export default defineAppConfig((env, { base }) => ({
  environment: { MY_VAR: 'value' },
  endpoints: {
    api: { url: 'https://api.example.com', scopes: ['api://scope/.default'] },
  },
}));
```

### 开发服务器配置( D)`dev-server.config.ts`(中文(简体) )

```ts
import { defineDevServerConfig } from '@equinor/fusion-framework-cli';

export default defineDevServerConfig((env, { base }) => ({
  ...base,
  // override dev-server options here
}));
```

### 当地模拟服务`mocks/<service>.mock.ts`(中文(简体) )

使用可执行服务模块而不是手写路由 `dev-server.config.ts`。安装 `@equinor/fusion-framework-cli-plugin-mock-server`,定义每项服务 `defineService`,以及 运行 `ffc mock-server` 在一个单独的前景终端.

见 [开发模拟服务](https://npmcn.com/package/%40equinor/dev-server/docs/mocking.md) 用于正常的发现, 单独 `--mock` 开发和发现模式.

### CLI 插件( E)`fusion-cli.config.ts`(中文(简体) )

```ts
import { defineFusionCli } from '@equinor/fusion-framework-cli';

export default defineFusionCli(() => ({
  plugins: ['@equinor/fusion-framework-cli-plugin-ai'],
}));
```

## 请求识别信头

CLI本身向Fusion服务发送的每一个请求都能够识别工具及其版本,所以 服务运营商在调查时可以区分FusionFramework的流量和其他呼叫者 出乎意料的请求(例如在Fusion Discovery日志中).

| 页眉 | 数值 |
| --- | --- |
| `X-Fusion-CLI-Name` | `fusion-framework-cli` |
| `X-Fusion-CLI-Version` | 已安装的CLI版本,例如:. `15.5.3` |
| `User-Agent` | `fusion-framework-cli/<version>` |

覆盖服务发现查询和由 `configureFramework`, (中文(简体) ), 发布、上传、检查和标记呼叫,以及AI模式、嵌入和搜索索引呼叫。 用这个 同样的 `X-Fusion-CLI-*` 常规作为另一个组合式 CLI,所以一个过滤器打开 `x-fusion-cli-name` 找到他们全部.

Dev 服务器转发的请求( E)`ffc app dev`, (中文(简体) ), `ffc app serve`, (中文(简体) ), `ffc portal dev`) 不属于CLI 打电话 他们用Dev服务器识别 `X-Fusion-Dev-Server-Name` 财务报告和审定财务报表 `X-Fusion-Dev-Server-Version`附加时 `X-Fusion-Mock: true|false`; 见 [dev 服务器 README](https://npmcn.com/package/%40equinor/dev-server/README.md#requirements-and-boundaries)。 。 。 .

-   **只有诊断.** 这些值可以被伪造,所以永远不要用于访问控制. 他们从来没有 包含标志、秘密或个人信息.
-   **召头取胜.** 已经设置在请求上的信头永远不会被覆盖 .
-   **程序化使用.** `defaultHeaders` 从 `@equinor/fusion-framework-cli/bin`,以及 `configureFramework` 为您在框架 HTTP 客户端上注册 .

## 文档

-   [开发应用程序](https://npmcn.com/package/%40equinor/fusion-framework-cli/docs/application.md) ——构建,配置和部署应用程序
-   [发展门户](https://npmcn.com/package/%40equinor/fusion-framework-cli/docs/portal.md) ——构建并发布门户模板
-   [Dev 服务器](https://npmcn.com/package/%40equinor/fusion-framework-cli/docs/dev-server.md) 建筑和配置
-   [认证](https://npmcn.com/package/%40equinor/fusion-framework-cli/docs/auth.md) ——本地和CI/CD认证设置
-   [移徙v10-v11](https://npmcn.com/package/%40equinor/fusion-framework-cli/docs/migration-v10-to-v11.md) ——突破变化并升级阶梯

## 常见问题

### 如何安装 @equinor/fusion-framework-cli？

在项目目录运行 npm install @equinor/fusion-framework-cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ffc、fusion-framework-cli，可以用 npx ffc 直接运行。

### @equinor/fusion-framework-cli 支持 TypeScript 吗？

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

### @equinor/fusion-framework-cli 支持 ESM 还是 CommonJS？

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

### @equinor/fusion-framework-cli 需要什么版本的 Node\.js？

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

### @equinor/fusion-framework-cli 可以商用吗？

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

### @equinor/fusion-framework-cli 的下载量有多少？

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

### @equinor/fusion-framework-cli 还在维护吗？

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

