Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20.19.0
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/graduate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20.19.0
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20.19.0
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
Expand All @@ -40,11 +40,11 @@ jobs:
git config --global user.name ${{ secrets.GIT_USER }}
git config --global user.email ${{ secrets.GIT_EMAIL }}

- name: Update examples
run: yarn update:examples ${{ github.event.inputs.version }}

- name: Update builders
run: yarn update:packages ${{ github.event.inputs.version }}

- name: Update examples
run: yarn update:examples ${{ github.event.inputs.version }}

- name: Install updated dependencies
run: yarn
Expand Down
86 changes: 86 additions & 0 deletions MIGRATION.MD
Original file line number Diff line number Diff line change
@@ -1,3 +1,89 @@
# Migration from version 19 to version 20

## Breaking Changes

### Node.js Version Requirements
- **Minimum Node.js version is now 20.19.0** (previously 18.19.1)
- Node.js 18 is no longer supported

### Example Projects: TSLint → ESLint Migration
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`.

## Custom ESBuild builder

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.

**Before:**
```json
"serve": {
"builder": "@angular-builders/custom-esbuild:dev-server",
"options": {
"forceEsbuild": true,
"port": 5006
}
}
```

**After:**
```json
"serve": {
"builder": "@angular-builders/custom-esbuild:dev-server",
"options": {
"port": 5006
}
}
```

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.

**New capability:**
```ts
// esbuild/plugins.ts
import type { Plugin } from 'esbuild';
import type { ApplicationBuilderOptions } from '@angular-devkit/build-angular';
import type { Target } from '@angular-devkit/architect';

export default (builderOptions: ApplicationBuilderOptions, target: Target): Plugin => {
return {
name: 'project-aware-plugin',
setup(build) {
// Access current project name
build.initialOptions.define.PROJECT_NAME = JSON.stringify(target.project);

// Access builder options like outputPath, tsConfig, etc.
console.log('Building for project:', target.project);
console.log('Output path:', builderOptions.outputPath);
},
};
};
```

This enables more sophisticated plugins that can adapt their behavior based on the current build target and configuration.

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.

## Custom Webpack builder

- No breaking changes (except for updating to Angular 20)

## Jest builder

- No breaking changes (except for updating to Angular 20)

# Migration from version 18 to version 19

## Custom ESBuild builder

- No breaking changes (except for updating to Angular 19)

## Custom Webpack builder

- No breaking changes (except for updating to Angular 19)

## Jest builder

- No breaking changes (except for updating to Angular 19)

# Migration from version 17 to version 18

## Custom ESBuild builder
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

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

## The latest version of all the builders requires Angular CLI 19
## The latest version of all the builders requires Angular CLI 20

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

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

- [Version 19](https://github.com/just-jeb/angular-builders/tree/19.x.x)
- [Version 18](https://github.com/just-jeb/angular-builders/tree/18.x.x)
- [Version 17](https://github.com/just-jeb/angular-builders/tree/17.x.x)
- [Version 16](https://github.com/just-jeb/angular-builders/tree/16.x.x)
Expand Down
6 changes: 6 additions & 0 deletions examples/bazel/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
###############################################################################
# Bazel now uses Bzlmod by default to manage external dependencies.
# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
#
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
###############################################################################
Loading