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
This Repository is based on Angular Version 14. It is therefore only compatible with Composable Storefront Versions > 5.0.0.
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:
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
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
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
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.
- Automated import in modules
- Flag for lazy loading modules
- Flag for creating redux store boilerplate code
For developing, simply run:
npm run build:watch
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
npm run test
will run the unit tests, using Jasmine as a runner and test framework.
To publish, simply do:
npm run build
npm publish
That's it!