• 2023-12-12SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
    BREAKPOINT在SAPSpartacusStorefront开源项目中是一个枚举类型,用于定义不同屏幕大小的断点。这个枚举类型默认包含五个屏幕名称:xs、sm、md、lg、xl,分别表示extrasmall、small、medium、large、extralarge的屏幕尺寸。这些尺寸通常与响应式设计中的断点概念相关联,用于确定
  • 2023-12-12什么是 Spartacus 的 ConfigModule.withConfig 方法
    Spartacus是一个开源的JavaScript商业前端库,使用Angular和RxJS构建,用于SAPCommerceCloud。它允许开发人员创建SPA(SinglePageApplication)应用,提供灵活的配置,以便灵活地适应不同的业务需求。在Spartacus中,ConfigModule.withConfig是一个非常重要的方法,它可以用于提
  • 2023-12-12谈谈企业级 Angular 应用的二次开发 - 基于 Angular Component 替换的 Extensibility 支持案例介绍
    我们知道面向个人用户(toCustomer,简称2C)软件和面向企业级用户(toBusiness,简称2B)的软件,在设计和实现上都存在一些区别,比如个人软件通常注重直观的用户界面和简单易用的设计,其中用户体验是关键,因为个人软件的目标是满足个人用户的需求和偏好。想想我们每天都在刷的抖音和头
  • 2023-12-02关于 SAP Spartacus 层的 UI 设计
    Spartacus每个UI划分成不同的区域section,每个区域由若干个slots组成。每个slot可以包含一个或多个CMSComponent.以homepage为例,其实现的HTML位置:projects\storefrontlib\src\layout\main\storefront.component.html看这个header区域:这个header区域分配的slo
  • 2023-12-02SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
    BREAKPOINT在SAPSpartacusStorefront开源项目中是一个枚举类型,用于定义不同屏幕大小的断点。这个枚举类型默认包含五个屏幕名称:xs、sm、md、lg、xl,分别表示extrasmall、small、medium、large、extralarge的屏幕尺寸。这些尺寸通常与响应式设计中的断点概念相关联,用于确定
  • 2023-12-02什么是 Spartacus 的 ConfigModule.withConfig 方法
    Spartacus是一个开源的JavaScript商业前端库,使用Angular和RxJS构建,用于SAPCommerceCloud。它允许开发人员创建SPA(SinglePageApplication)应用,提供灵活的配置,以便灵活地适应不同的业务需求。在Spartacus中,ConfigModule.withConfig是一个非常重要的方法,它可以用于
  • 2023-12-02谈谈企业级 Angular 应用的二次开发 - 基于 Angular Component 替换的 Extensibility 支持案例介绍
    我们知道面向个人用户(toCustomer,简称2C)软件和面向企业级用户(toBusiness,简称2B)的软件,在设计和实现上都存在一些区别,比如个人软件通常注重直观的用户界面和简单易用的设计,其中用户体验是关键,因为个人软件的目标是满足个人用户的需求和偏好。想想我们每天都在刷的抖音和
  • 2023-12-01Angular Input 注解在 Spartacus 项目开发中的实际应用场景一例
    @Input()装饰器是Angular中用于在组件中接收父组件传递的数据的一种方式。它的作用是将一个属性标记为输入属性,使得父组件可以将数据绑定到子组件的这些属性上。这样,父子组件之间就可以实现双向数据传递,实现更灵活的组件通信。下面是一个实际的例子:SearchBoxComponent是父组
  • 2023-11-25Spartacus 6.0 baseSites API 的准确触发位置
    启动Spartacus后,第一个调用的API是BaseSiteAPI。BaseSiteAPI是SAPCommerceCloud中非常重要的一个API,它主要的作用包括:获取网站基本信息:BaseSiteAPI用于从SAPCommerceCloud中获取网站的基本信息,如网站的名称、ID、默认语言、默认货币、时间区等。这些信息对
  • 2023-11-18Angular 应用的搜索引擎优化(SEO)实战指南
    笔者之前在掘金社区发表了两篇关于Angular开发的文章,分别介绍了Angular支持服务器端渲染和PWA的技术细节:基于AngularUniversal引擎进行服务器端渲染的前端应用StateTransfer故障排查案例Angular应用支持PWA(ProgressiveWebApplication)特性的开发步骤分享本
  • 2023-11-18Spartacus ngsw-config.json 文件内容的详细解释
    以下是Spartacus项目ngsw-config.json文件的代码解释和示例:`index`:"/index.html",index:定义了服务工作线程(ServiceWorker)中的主页文件。在这个例子中,index设置为/index.html,表示在缓存策略中将会使用此作为主页文件。`assetGroups`:[{`name`:"app",
  • 2023-11-17如何避免 Spartacus 重复发送 CMS page 请求
    如下图所示,启用了SSR之后,Spartacus在CSR模式下re-hydration时,会重复发送一次CMSpage请求:可以参考这个StackOverflow的讨论,通过下面的代码来阻止CSR模式下重复发送page请求:provideConfig(<RoutingConfig>{routing:{loadStrategy:RouteLoadStrategy.ONC
  • 2023-11-13Spartacus 服务器端渲染(SSR)的 timeout 设置
    如下图所示,SpartacusSSRengine的几种timeout超时机制的设置:其中第122行的3_000写法,意思就是默认的3000毫秒超时时间。在官网能看到对于这些timeout字段的说明:timeout的设置是一个数字,指示SSR服务器在回退到CSR默认的渲染机制之前,尝试呈现页面的时间量(以毫秒
  • 2023-11-13编译 Spartacus 6.0 时遇到的错误消息
    错误消息如下:CompilingwithAngularsourcesinIvypartialcompilationmode.projects/storefrontlib/shared/components/generic-link/generic-link.component.html:22:6-errorTS2322:Type'string|null'isnotassignabletotype'string|undefine
  • 2023-11-13Spartacus CSR 渲染模式下的 home page 网络请求
    SpartacusCSR渲染模式下的homepage网络请求如下,其中第一个请求就是baseSitesOCCAPI调用。Spartacus是一个开源的、响应式的电子商务前端框架,是基于Angular构建的,旨在帮助企业快速构建现代化的电子商务网站。OCC(OmniCommerceConnect)是Spartacus与后端电子商务平台(通常
  • 2023-11-13如何给 Spartacus 的 CSR 和 SSR 配置不同的 OCC endpoint
    SAP官方文档里,对CommerceCloudComposableStorefront的occendpoint配置说明的例子如下:provideConfig(backend:{occ:{baseUrl:'https://some.baseUrl.com'},},}),那么如果想为SSR和CSR两种运行方式,配置不同的o
  • 2023-10-29谈谈 Angular 的升级问题
    我们知道咱们目前在用的ComposableStorefront,基于SAPSpartacus这个开源项目,在5.0的时候,Spartacus成为SAP正式产品之一,更名为ComposableStorefront.咱们今天谈论的是ComposableStorefront的升级问题,首先就要明确为什么我们要进行升级。Spartacus基于一系列的前端
  • 2023-10-21编译 Spartacus 6.0 时遇到的错误消息
    错误消息如下:CompilingwithAngularsourcesinIvypartialcompilationmode.projects/storefrontlib/shared/components/generic-link/generic-link.component.html:22:6-errorTS2322:Type'string|null'isnotassignabletotype'string|undefine
  • 2023-10-04如何使用 TypeScript 的 module augmentation 技术增强 Spartacus Feature Library
    moduleaugmentation技术是一种强大的TypeScript功能,它允许开发人员在不修改原始代码的情况下扩展现有模块的功能。这种技术在Angular生态系统中的应用尤为广泛,特别是在构建功能库和插件时,以确保代码的可维护性和可扩展性。概述Moduleaugmentation允许我们向现有模块添加
  • 2023-10-03什么是 Spartacus 的 BaseStorefrontModule
    SpartacusBaseStorefrontModule的位置:import{NgModule}from'@angular/core';import{BaseStorefrontModule}from"@spartacus/storefront";import{SpartacusConfigurationModule}from'./spartacus-configuration.module';impo
  • 2023-09-14combineLatest 操作符在 Spartacus Cost Center 计算逻辑中的一个实际应用
    考虑下面这段Angular代码:this.costCenters$=combineLatest([this.userCostCenters$,this.checkoutCostCenterFacade.getCostCenterState().pipe(filter((state)=>!state.loading),map((state)=>state.data),distinctUntilCh
  • 2023-09-09Spartacus 如何动态将 SmartEdit attribute 添加到 DOM 里,单步调试
    从Spartacus发起的basesiteocc请求的response获取当前site的数据:从CMSpage的response结果里得到的properties:使用renderer往DOM元素上添加attribute:在这个DynamicAttributeService里设置断点。Angular是一种流行的前端框架,它提供了一套强大的工具
  • 2023-09-09如何找到 Spartacus 动态加载 library 的准确实现地址
    Spartacus里SmartEditFeatureModule这段实现代码:import{NgModule}from'@angular/core';import{CmsConfig,provideConfig}from'@spartacus/core';import{SmartEditRootModule,SMART_EDIT_FEATURE,}from'@spartacus/smartedit/ro
  • 2023-09-06如何找到 Spartacus 动态加载 library 的准确实现地址
    Spartacus里SmartEditFeatureModule这段实现代码:import{NgModule}from'@angular/core';import{CmsConfig,provideConfig}from'@spartacus/core';import{SmartEditRootModule,SMART_EDIT_FEATURE,}from'@spartacus/smartedit/ro
  • 2023-08-22什么是 Spartacus Storefront B2B store 的 My Company 菜单
    Spartacus是一个基于Angular的开源JavaScriptweb应用,与SAPCommerceCloud的RESTAPI进行交互。它的目标是提供一个稳定、可靠、可扩展的前端解决方案,让开发者能够创建全功能的商店,同时避免了与后端系统的紧密耦合。其中,B2Bstore是一个专门为B2B交易设计的商店,而My