SuperAPI AI 工具集

commerce-app-init

编程与开发

查看项目

更新于 10-15 09:02

技能介绍

commerce-app-init 用于初始化一个新的 Adobe Commerce 应用,基于 aio-commerce-sdk 搭建基础项目结构。它适合在需要从零创建一个 Adobe Commerce 应用、或为已有应用补齐脚手架时使用。

主要能力

该技能会创建 app.commerce.config.ts 配置文件,其中包含应用元数据,例如 id、displayName、description、upgradeMode 和 version。随后运行 init 命令安装依赖并生成所有必需的项目文件。它可安全重复调用:如果项目根目录已存在 app.commerce.config.ts,则不会覆盖,而是直接进入初始化步骤。

使用方式

第一步是创建配置。若 app.commerce.config.ts 已存在,则跳过此步。否则根据用户意图推导字段值,确认后写入项目根目录。配置通过 defineConfig 从 @adobe/aio-commerce-lib-app/config 导入并导出。

第二步是初始化项目,始终运行以下命令:

npx @adobe/aio-commerce-lib-app init

由于配置文件已存在,init 会跳过交互式提示。重复运行是安全的:存在配置时,它会安装依赖并重新生成项目文件——app-management 包会被重新生成,而 src/commerce-extensibility-1/actions/ 下的用户包会被保留。

对于 TypeScript 的 Commerce 配置,init 还会创建缺失的 webpack-config.cjs 和根 tsconfig.json 文件,安装兼容的 typescript、ts-loader、@tsconfig/bases 和 @types/node 开发依赖,并将 typecheck:actions 添加到项目的组合 typecheck 脚本中。生成的 Runtime action 仍为 JavaScript。脚手架就绪后,用户编写的运行时 action 和自定义安装脚本可以用 .ts 编写。

第三步是验证配置,运行:

aio app build

如果配置无效,构建会失败并给出指向问题字段的详细验证错误。

项目结构

初始化后,src/ 下有两类目录:src/commerce-extensibility-1/actions/ 用于存放 Webhook 和事件的自定义运行时 action,需在 src/commerce-extensibility-1/ext.config.yaml 中以用户定义的包名注册(不能使用保留名 app-management),这些内容在 aio app build 时会被保留;src/commerce-extensibility-1/.generated/ 由 aio app build 自动生成,应视为只读;src/commerce-configuration-1/ 由 aio app build 管理,同样视为只读。根 tsconfig.json 用于检查 TypeScript Commerce 配置和生成的 Runtime action,并排除拥有独立 TypeScript 配置的 Admin UI web-src。

适用场景

适用于创建新的 Adobe Commerce 应用、搭建 App Builder 项目基础结构,以及为后续通过领域技能添加事件、Webhook、业务配置、Admin UI 扩展或持久化存储做准备。

限制与注意事项

metadata.id 仅接受字母数字和连字符,不能包含点、下划线或空格,且升级期间不可更改,如需更换 ID 必须卸载并重新安装应用。version 仅接受数字语义化版本(如 1.0.0),不支持预发布标识符(如 1.0.0-beta)。若出现 defineConfig not found,需确保已安装 @adobe/aio-commerce-lib-app 并从 @adobe/aio-commerce-lib-app/config 导入。质量要求是 aio app build 无错误完成。

后续衔接

aio app build 通过后,可调用 appbuilder-project-init 技能引导 Developer Console,并订阅 AdobeIOManagementAPISDK。若 Commerce 后端为 ACCS,还需订阅 ACCS-REST-API。之后可通过 commerce-app-eventing、commerce-app-webhooks、commerce-app-business-config、commerce-app-admin-ui、commerce-app-storage 等领域技能进行扩展。