Skip to content

Commit c8d895e

Browse files
committed
chore(deps)!: upgrade to Angular 20
- Update all packages and examples to Angular 20 - Update Node.js requirement to ≥20.19.0 - Update GitHub Actions workflows to use Node.js 20.19.0 - Update all Angular dependencies to version 20 - Update supporting dependencies (RxJS, TypeScript, etc.) - Update Bazel MODULE files for Angular 20 compatibility BREAKING CHANGES: - Requires Angular 20 (was Angular 19) - Requires Node.js ≥20.19.0 (was ≥18.19.1)
1 parent dbc033f commit c8d895e

File tree

27 files changed

+3640
-2266
lines changed

27 files changed

+3640
-2266
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
3434
- uses: actions/setup-node@v4
3535
with:
36-
node-version: 18
36+
node-version: 20.19.0
3737
registry-url: 'https://registry.npmjs.org'
3838

3939
- name: Install dependencies

.github/workflows/graduate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
2626
- uses: actions/setup-node@v4
2727
with:
28-
node-version: 18
28+
node-version: 20.19.0
2929
registry-url: 'https://registry.npmjs.org'
3030

3131
- name: Install dependencies

.github/workflows/update.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
3030
- uses: actions/setup-node@v4
3131
with:
32-
node-version: 18
32+
node-version: 20.19.0
3333
registry-url: 'https://registry.npmjs.org'
3434

3535
- name: Install dependencies
@@ -40,11 +40,11 @@ jobs:
4040
git config --global user.name ${{ secrets.GIT_USER }}
4141
git config --global user.email ${{ secrets.GIT_EMAIL }}
4242
43-
- name: Update examples
44-
run: yarn update:examples ${{ github.event.inputs.version }}
45-
4643
- name: Update builders
4744
run: yarn update:packages ${{ github.event.inputs.version }}
45+
46+
- name: Update examples
47+
run: yarn update:examples ${{ github.event.inputs.version }}
4848

4949
- name: Install updated dependencies
5050
run: yarn

MIGRATION.MD

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,89 @@
1+
# Migration from version 19 to version 20
2+
3+
## Breaking Changes
4+
5+
### Node.js Version Requirements
6+
- **Minimum Node.js version is now 20.19.0** (previously 18.19.1)
7+
- Node.js 18 is no longer supported
8+
9+
### Example Projects: TSLint → ESLint Migration
10+
All example projects have been migrated from the deprecated TSLint to modern ESLint using Angular's official migration tools. If you're using these examples as reference, update your linting setup accordingly by running `ng add @angular-eslint/schematics`.
11+
12+
## Custom ESBuild builder
13+
14+
1. The `forceEsbuild` property has been removed from the dev-server configuration. This property is no longer supported since the builder now uses `@angular/build` directly, which uses esbuild by default.
15+
16+
**Before:**
17+
```json
18+
"serve": {
19+
"builder": "@angular-builders/custom-esbuild:dev-server",
20+
"options": {
21+
"forceEsbuild": true,
22+
"port": 5006
23+
}
24+
}
25+
```
26+
27+
**After:**
28+
```json
29+
"serve": {
30+
"builder": "@angular-builders/custom-esbuild:dev-server",
31+
"options": {
32+
"port": 5006
33+
}
34+
}
35+
```
36+
37+
2. **New Feature:** Plugins can now access builder options and target information through factory functions. This is a **non-breaking** enhancement - existing plugins continue to work unchanged.
38+
39+
**New capability:**
40+
```ts
41+
// esbuild/plugins.ts
42+
import type { Plugin } from 'esbuild';
43+
import type { ApplicationBuilderOptions } from '@angular-devkit/build-angular';
44+
import type { Target } from '@angular-devkit/architect';
45+
46+
export default (builderOptions: ApplicationBuilderOptions, target: Target): Plugin => {
47+
return {
48+
name: 'project-aware-plugin',
49+
setup(build) {
50+
// Access current project name
51+
build.initialOptions.define.PROJECT_NAME = JSON.stringify(target.project);
52+
53+
// Access builder options like outputPath, tsConfig, etc.
54+
console.log('Building for project:', target.project);
55+
console.log('Output path:', builderOptions.outputPath);
56+
},
57+
};
58+
};
59+
```
60+
61+
This enables more sophisticated plugins that can adapt their behavior based on the current build target and configuration.
62+
63+
3. **Migration to @angular/build:** The custom-esbuild package now uses `@angular/build` instead of `@angular-devkit/build-angular` for better performance and modern build tooling.
64+
65+
## Custom Webpack builder
66+
67+
- No breaking changes (except for updating to Angular 20)
68+
69+
## Jest builder
70+
71+
- No breaking changes (except for updating to Angular 20)
72+
73+
# Migration from version 18 to version 19
74+
75+
## Custom ESBuild builder
76+
77+
- No breaking changes (except for updating to Angular 19)
78+
79+
## Custom Webpack builder
80+
81+
- No breaking changes (except for updating to Angular 19)
82+
83+
## Jest builder
84+
85+
- No breaking changes (except for updating to Angular 19)
86+
187
# Migration from version 17 to version 18
288

389
## Custom ESBuild builder

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
The purpose of this repository is to consolidate all the community builders for Angular build facade.
44

5-
## The latest version of all the builders requires Angular CLI 19
5+
## The latest version of all the builders requires Angular CLI 20
66

77
Builders' and Angular **major** versions **must** match.
88

@@ -13,6 +13,7 @@ Builders' and Angular **major** versions **must** match.
1313
<details>
1414
<summary>Click to expand</summary>
1515

16+
- [Version 19](https://github.com/just-jeb/angular-builders/tree/19.x.x)
1617
- [Version 18](https://github.com/just-jeb/angular-builders/tree/18.x.x)
1718
- [Version 17](https://github.com/just-jeb/angular-builders/tree/17.x.x)
1819
- [Version 16](https://github.com/just-jeb/angular-builders/tree/16.x.x)

examples/bazel/MODULE.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
###############################################################################
2+
# Bazel now uses Bzlmod by default to manage external dependencies.
3+
# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
4+
#
5+
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
6+
###############################################################################

0 commit comments

Comments
 (0)