From 68f71bf9f3d113ee3186061ce224eab8dc094215 Mon Sep 17 00:00:00 2001 From: Ebicoglu Date: Thu, 29 Aug 2024 12:27:54 +0300 Subject: [PATCH] add new post --- .../Post.md | 85 ++++++++++++++++++ .../cover.png | Bin 0 -> 36227 bytes 2 files changed, 85 insertions(+) create mode 100644 docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md create mode 100644 docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png diff --git a/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md new file mode 100644 index 0000000000..c13c5ab345 --- /dev/null +++ b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md @@ -0,0 +1,85 @@ +# What is Angular Schematics? + +![Cover Image](cover.png) + +**Angular Schematics** is a powerful tool which is part of the Angular CLI that allows developers to automate various development tasks by **generating and modifying code**. Schematics provides a way to create **templates and boilerplate code** for Angular applications or libraries, enabling consistency and reducing the amount of repetitive work. + +### Key Concepts of Angular Schematics: + +1. **Code Generation:** + - Schematics can generate boilerplate code for various Angular artifacts, such as components, services, modules, pipes... For example, when you run a command like `ng generate component my-component`, Angular uses a schematic to create the component files and update the necessary modules. + +2. **Code Modification:** + - Schematics can also modify existing code in your project. This includes tasks like updating configuration files, adding new routes, or modifying Angular modules. They can be very useful when upgrading projects to a new version of Angular or adding new features that require changes to the existing codebase. + +3. **Custom Schematics:** + - Developers can create their own custom schematics to automate repetitive tasks specific to their projects. For example, if your team frequently needs to set up a certain type of service or configure specific libraries, you can create a schematic that automates these steps. In [ABP Suite](https://abp.io/suite), we use the custom schematics templates to generate CRUD pages for Angular UI. + +4. **Collection of Schematics:** + - Schematics are often grouped into collections. The Angular CLI itself is a collection of schematics. You can create your own collection or use third-party schematic collections created by the Angular community. + +5. **Integration with Angular CLI:** + - Schematics is integrated with the Angular CLI. The `ng generate` and `ng add` commands are examples of how schematics are used in everyday Angular development. When you use these commands, the Angular CLI runs the corresponding schematic to perform the desired operation. + +6. **Upgrade Tasks:** + - Schematics can be used to automate the process of upgrading Angular applications. For example, the Angular Update command (`ng update`) uses schematics to automatically apply necessary changes to your project when upgrading to a new version of Angular. + +### Common Use Cases: + +- **Generating Components, Services, Modules.:** Easily create Angular building blocks with commands like `ng generate component`, `ng generate service`, or `ng generate module`. + +- **Adding Libraries:** Automatically set up and configure third-party libraries with `ng add`. For example, `ng add @angular/material` uses a schematic to install and configure Angular Material in your project. + +- **Automating Project Upgrades:** Simplify the process of upgrading Angular versions by running `ng update`, which uses schematics to make necessary code changes. + +- **Custom Project Scaffolding:** Create custom schematics to enforce your team's development standards and best practices by automating the creation of specific project structures. + +### How to Create a Custom Schematic: + +Creating a custom schematic involves several steps: +1. **Install the Schematics CLI:** + ```bash + npm install -g @angular-devkit/schematics-cli + ``` + +2. **Create a New Schematic Project:** + ```bash + schematics blank --name=my-schematic + cd my-schematic + ``` + +3. **Define Your Schematic:** Modify the files in the schematic project to define what your schematic will generate or modify. + +4. **Test Your Schematic:** You can run your schematic locally using the `schematics` command. + +5. **Publish Your Schematic (Optional):** Once your schematic is ready, you can publish it to npm or include it in your Angular projects. + +#### Example: +If you want to create a custom component with specific settings or styles, you can create a schematic to automate this. Every time a developer on your team needs to create this type of component, they can run the schematic, ensuring consistency across the project. + + + +### Helpful Links + +Here are the direct links for the Angular Schematics resources: + +- [Angular Official Documentation: Schematics Overview — angular.io](https://angular.io/guide/schematics) + +- [Creating Custom Schematics — angular.io](https://angular.io/guide/schematics-for-libraries) + +- [CLI Schematic Command — angular.io](https://angular.io/cli/schematic) + +- [Devkit Schematics— github.com](https://github.com/angular/angular-cli/tree/main/packages/angular_devkit/schematics) + +- [Schematics Examples — github.com](https://github.com/angular/angular-cli/tree/main/packages/schematics/angular) + +- [Debugging Angular Schematics — dev.to](https://dev.to/nikolasleblanc/debugging-angular-schematics-1ne0) + +- [Using Schematics with Nx — nx.dev](https://nx.dev/guides/using-angular-schematics) + +- [Schematics API — angular.io](https://angular.io/api/schematics) + + + +### Conclusion: +Angular Schematics is a powerful tool for automating repetitive tasks, generating consistent code, and managing project upgrades. By leveraging schematics, Angular developers can save time, reduce errors, and enforce best practices across their projects. \ No newline at end of file diff --git a/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..3e155996e85aa05da319a1effe251d86c23046cd GIT binary patch literal 36227 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