You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非交互模式编程创建Spartacus项目时如何指定自定义功能列表

问题描述

当配置interactive=false参数,通过Schematics以编程方式创建新的SAP Spartacus项目时,常用执行命令如下:

ng add @spartacus/schematics@latest --skip-confirmation --interactive=false --base-url https://${FQDN} --pwa --base-site=powertools-spa --currency=usd --language=en,de --ssr

核心疑问:该场景下是否支持传入自定义的待启用功能列表,替换schema.json中预定义的默认功能集合?
对应的默认功能集合配置如下:

"default": [
  "ASM",
  "Cart",
  "WishList",
  "Checkout",
  "Order",
  "Import-Export",
  "Saved-Cart",
  "Quick-Order",
  "Image-Zoom",
  "Product-Variants",
  "SmartEdit",
  "Store-Finder",
  "Personalization",
  "User-Account",
  "User-Profile"
]

诉求是通过单次命令完成所有功能配置,避免逐个手动安装额外功能包,逐包安装的操作示例如下:

ng add @spartacus/organization --skip-confirmation
ng add @spartacus/product-configurator --features="VC-Configurator" --skip-confirmation

schema.json中定义的全部可用功能枚举值如下:

"enum": [
  "ASM",
  "Import-Export",
  "Saved-Cart",
  "Quick-Order",
  "CDC",
  "CDS",
  "Cart",
  "WishList",
  "Checkout",
  "Checkout-B2B",
  "Checkout-Scheduled-Replenishment",
  "Order",
  "Digital-Payments",
  "EPD-Visualization",
  "Administration",
  "Order-Approval",
  "Bulk-Pricing",
  "Image-Zoom",
  "Product-Variants",
  "VC-Configurator",
  "Textfield-Configurator",
  "CPQ-Configurator",
  "Qualtrics",
  "SmartEdit",
  "Store-Finder",
  "Personalization",
  "TMS-GTM",
  "TMS-AEPL",
  "User-Account",
  "User-Profile"
]
解答

完全支持。
直接在执行ng add @spartacus/schematics命令时追加--features参数即可,参数值传逗号分隔的功能枚举值,传入后会直接覆盖默认的功能集合,不需要后续再逐包执行安装命令。
举个实际使用示例,如果需要同时启用组织管理、VC配置器、B2B结账能力,命令写法如下:

ng add @spartacus/schematics@latest --skip-confirmation --interactive=false --base-url https://${FQDN} --pwa --base-site=powertools-spa --currency=usd --language=en,de --ssr --features=ASM,Cart,WishList,Checkout,Checkout-B2B,Order,Administration,Order-Approval,Bulk-Pricing,VC-Configurator,Image-Zoom,Product-Variants,SmartEdit,Store-Finder,Personalization,User-Account,User-Profile

使用时需要注意几个规则:

  • 传入--features参数后不会自动加载默认功能列表,必须把你需要的所有功能(包括原本默认启用的基础功能)都列在参数值里,漏写的功能不会自动启用。
  • 参数值里的功能名必须和枚举列表里的字符串完全一致,大小写、连字符都不能错,否则会触发参数校验报错。
  • 只要是枚举列表里包含的功能,不管是基础功能还是B2B管理、产品配置器、TMS这类扩展功能,只要在features列表里声明,初始化时就会自动安装对应依赖、完成模块配置,不需要后续单独执行对应功能包的ng add命令。

内容的提问来源于stack exchange,提问作者Nicola Beghin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 02:28:03