@ equinor/ 聚变框架- cli
用于开发、建设和出版Fusion框架应用程序和门户网站模板的命令行工具包。 提供从地方发展到生产部署的统一开发者经验.
特征
- 应用程序脚手架 ——从预定义模板生成新的聚合应用
- 开发服务器 ——有服务发现和认证的热重装dev服务器
- 构建捆绑( B) ——以维特为主的生产建设有明显的出产地
- 发布标签( T) ——上传捆绑和配置到Fusionapp/portal服务
- 抓图版本 时间戳预览为公关和CI构建(
--snapshot(中文(简体) ) - 门户模板 ——构建,捆绑,并部署门户配置
- 服务发现 解决来自任何环境的融合服务终点
- 认证 – Azure AD 登录,指使管理,CI/CD指使支持
- 插件系统 ——以可选插件包扩展 CLI
安装
pnpm add -D @equinor/fusion-framework-cli
该套件暴露出两个二进制别名: fusion-framework-cli 财务报告和审定财务报表 ffc。 。 。 .
使用量
创建新应用程序
# 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
地方发展
# Start the dev server (app)
pnpm fusion-framework-cli dev
# Start the dev server (portal)
pnpm fusion-framework-cli portal dev
构建和出版
# 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
认证
# 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.jsonmergeAppManifests编号 :mergeAppConfig- 深层显示/配置对象ApiAppConfigSchema用于应用配置验证的 Zod schema
@equinor/fusion-framework-cli/portal
definePortalManifest编号 :definePortalConfig编号 :definePortalSchema- 类型安全帮助者loadPortalManifest编号 :loadPortalConfig编号 :loadPortalSchema——装入并验证文件createPortalManifestFromPackage- 建立一个门户,显示来自package.jsonvalidatePortalManifest证实一份反对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(中文(简体) )
import { defineAppManifest } from '@equinor/fusion-framework-cli/app';
export default defineAppManifest((env, { base }) => ({
...base,
// override manifest fields here
}));
应用程序配置( E)app.config.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(中文(简体) )
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 在一个单独的前景终端.
见 开发模拟服务 用于正常的发现,
单独 --mock 开发和发现模式.
CLI 插件( E)fusion-cli.config.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。 。 。 .
- 只有诊断. 这些值可以被伪造,所以永远不要用于访问控制. 他们从来没有 包含标志、秘密或个人信息.
- 召头取胜. 已经设置在请求上的信头永远不会被覆盖 .
- 程序化使用.
defaultHeaders从@equinor/fusion-framework-cli/bin,以及configureFramework为您在框架 HTTP 客户端上注册 .