Skip to content

Custom ng schematics to generate Spartacus components & features based on blueprint files

License

Notifications You must be signed in to change notification settings

valantic/spartacus-blueprint

Repository files navigation

Getting Started With Composable Storefront Schematics

This repository is a Custom Schematics implementation for Component Blueprints for Composable Storefront (formerly Spartacus) from Valantic. It can be used to create new components / features for SAP Composable Storefront Projects.

Following blueprints are implemented as for now:

  • Feature
  • CMS Component
  • Simple Component

Angular / Composable Storefront Version

This Repository is based on Angular Version 14. It is therefore only compatible with Composable Storefront Versions > 5.0.0.

How to use

Install @valantic/spartacus-blueprints in your project

npm i -D @valantic/spartacus-blueprints

Schematics can be executed from root directory with ng genereate @valantic/spartacus-blueprints:BLUEPRINT your/path/Name where BLUEPRINT is one of the following:

Feature

The Feature Blueprint schematic can be run either with only the feature name only or additionally with a specific path (if running with a specific path check all imports in generated files). If run without a path it will be added to your projects features folder.

ng generate @valantic/spartacus-blueprints:feature src/app/[PROJECT_NAME]/features/MyFeatureName

or

ng generate @valantic/spartacus-blueprints:feature MyFeatureName

or

# enter the feature path and name in the prompt
ng generate @valantic/spartacus-blueprints:feature 

CMS Component

The CMS Component Blueprint schematic can be run either with only the feature name only or additionally with a specific path (if running with a specific path check all imports in generated files). If run without a path it will be added to your projects cms components folder.

ng generate @valantic/spartacus-blueprints:cms-component src/app/[PROJECT_NAME]/features/cms/components/MyCmsComponentName

or

ng generate @valantic/spartacus-blueprints:cms-component MyCmsComponentName

or

# enter the component path and name in the prompt
ng generate @valantic/spartacus-blueprints:cms-component MyCmsComponentName

Simple Component

The Simple Component Blueprint schematic should be run with a path, and you have to check all imports in all generated files afterwards.

ng generate @valantic/spartacus-blueprints:simple-component src/app/[PROJECT_NAME]/your/path/MySimpleComponentName

or

# enter the component path and name in the prompt
ng generate @valantic/spartacus-blueprints:simple-component

General

In general, you have to import the created module in the corresponding parent module to make it work for now. Consider whether to lazy load or static load it accordingly.

Todo

  • Automated import in modules
  • Flag for lazy loading modules
  • Flag for creating redux store boilerplate code

Local dev

For developing, simply run:

npm run build:watch

Testing

To test locally, install @angular-devkit/schematics-cli globally and use the schematics command line tool. That tool acts the same as the generate command of the Angular CLI, but also has a debug mode.

Check the documentation with

schematics --help

Unit Testing

npm run test will run the unit tests, using Jasmine as a runner and test framework.

Publishing

To publish, simply do:

npm run build
npm publish

That's it!

About

Custom ng schematics to generate Spartacus components & features based on blueprint files

Resources

License

Stars

Watchers

Forks

Packages

No packages published