如何使用 Spartacus 库的 private API
How to use private API of the Spartacus library
有时我们想要扩展的 class 不是斯巴达克斯 public API 的一部分。因此我们不能直接从 @spartacus/xxxxx
.
导入 SomeClass
我们已经在 public API 中发现或创建了一个关于导出 SomeClass
的提案的 github 问题。现在等待斯巴达克斯核心团队的回应。
如果我们真的需要导入它并在我们的项目中扩展,我们在此期间可以做什么?
当您需要斯巴达克斯私人API会员时,请先:
- 在Spartacus github issues
中搜索相关请求使其public
- 如果没有问题,请create a new issue。
免责声明:Spartacus 的私有API一般不应该使用。它可能会在没有任何警告的情况下随时更改。您可以使用以下解决方法来承担您自己的风险。升级到任何下一个版本后,这可能会导致您的代码被破坏。
打开文件 node_modules/@spartacus/xxxxx/spartacus-xxxxx.d.ts
并找到 class 的导出别名,前缀为符号 ɵ
:
export { SomeClass as ɵxyz } from '..........';
然后您可以在您的应用程序中使用别名,例如扩展 class 行为:
import { ɵxyz as SomeClass } from `@spartacus/core`;
/* ... */
// for example:
@Injectable()
export class CustomSomeClass extends SomeClass {
/*...*/
}
/* ... */
@NgModule({
providers: [
{ provide: SomeClass, useClass: CustomSomeClass }
]
})
警告:ɵ
-别名可能会在 Spartacus 的任何下一个版本中更改,而不会发出任何警告。它不是 public API.
的一部分
有时我们想要扩展的 class 不是斯巴达克斯 public API 的一部分。因此我们不能直接从 @spartacus/xxxxx
.
SomeClass
我们已经在 public API 中发现或创建了一个关于导出 SomeClass
的提案的 github 问题。现在等待斯巴达克斯核心团队的回应。
如果我们真的需要导入它并在我们的项目中扩展,我们在此期间可以做什么?
当您需要斯巴达克斯私人API会员时,请先:
- 在Spartacus github issues 中搜索相关请求使其public
- 如果没有问题,请create a new issue。
免责声明:Spartacus 的私有API一般不应该使用。它可能会在没有任何警告的情况下随时更改。您可以使用以下解决方法来承担您自己的风险。升级到任何下一个版本后,这可能会导致您的代码被破坏。
打开文件 node_modules/@spartacus/xxxxx/spartacus-xxxxx.d.ts
并找到 class 的导出别名,前缀为符号 ɵ
:
export { SomeClass as ɵxyz } from '..........';
然后您可以在您的应用程序中使用别名,例如扩展 class 行为:
import { ɵxyz as SomeClass } from `@spartacus/core`;
/* ... */
// for example:
@Injectable()
export class CustomSomeClass extends SomeClass {
/*...*/
}
/* ... */
@NgModule({
providers: [
{ provide: SomeClass, useClass: CustomSomeClass }
]
})
警告:ɵ
-别名可能会在 Spartacus 的任何下一个版本中更改,而不会发出任何警告。它不是 public API.