Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save LayZeeDK/c822cc812f75bb07b7c55d07ba2719b3 to your computer and use it in GitHub Desktop.
Save LayZeeDK/c822cc812f75bb07b7c55d07ba2719b3 to your computer and use it in GitHub Desktop.
Angular CLI, Angular, Node.js, TypeScript, and RxJS version compatibility matrix. Officially part of the Angular documentation as of 2023-04-19 https://angular.io/guide/versions
Angular CLI version Angular version Node.js version TypeScript version RxJS version
~16.0.0 ~16.0.0 ^16.13.0 || ^18.10.0 >=4.9.5 <5.1.0 ^6.5.5 || ^7.4.0
~15.2.0 ~15.2.0 ^14.20.0 || ^16.13.0 || ^18.10.0 >=4.8.4 <5.0.0 ^6.5.5 || ^7.4.0
~15.1.0 ~15.1.0 ^14.20.0 || ^16.13.0 || ^18.10.0 >=4.8.4 <5.0.0 ^6.5.5 || ^7.4.0
~15.0.5 ~15.0.4 ^14.20.0 || ^16.13.0 || ^18.10.0 ~4.8.4 ^6.5.5 || ^7.4.0
~14.3.0 ~14.3.0 ^14.15.0 || ^16.10.0 >=4.6.4 <4.9.0 ^6.5.5 || ^7.4.0
~14.2.0 ~14.2.0 ^14.15.0 || ^16.10.0 >=4.6.4 <4.9.0 ^6.5.5 || ^7.4.0
~14.1.3 ~14.1.3 ^14.15.0 || ^16.10.0 >=4.6.4 <4.8.0 ^6.5.5 || ^7.4.0
~14.0.7 ~14.0.7 ^14.15.0 || ^16.10.0 >=4.6.4 <4.8.0 ^6.5.5 || ^7.4.0
~13.3.0 ~13.3.0 ^12.20.2 || ^14.15.0 || ^16.10.0 >=4.4.4 <4.7.0 ^6.5.5 || ^7.4.0
~13.2.6 ~13.2.7 ^12.20.2 || ^14.15.0 || ^16.10.0 >=4.4.4 <4.6.0 ^6.5.5 || ^7.4.0
~13.1.4 ~13.1.3 ^12.20.2 || ^14.15.0 || ^16.10.0 >=4.4.4 <4.6.0 ^6.5.5 || ^7.4.0
~13.0.4 ~13.0.3 ^12.20.2 || ^14.15.0 || ^16.10.0 ~4.4.4 ^6.5.5 || ^7.4.0
~12.2.18 ~12.2.17 ^12.14.1 || ^14.15.0 >=4.2.4 <4.4.0 ^6.5.5 || ^7.0.1
~12.1.4 ~12.1.5 ^12.14.1 || ^14.15.0 >=4.2.4 <4.4.0 ^6.5.5
~12.0.5 ~12.0.5 ^12.14.1 || ^14.15.0 ~4.2.4 ^6.5.5
~11.2.19 ~11.2.14 ^10.13.0 || ^12.11.1 >=4.0.8 <4.2.0 ^6.5.5
~11.1.4 ~11.1.2 ^10.13.0 || ^12.11.1 >=4.0.8 <4.2.0 ^6.5.5
~11.0.7 ~11.0.9 ^10.13.0 || ^12.11.1 ~4.0.8 ^6.5.5
~10.2.4 ~10.2.5 ^10.13.0 || ^12.11.1 >=3.9.4 <4.1.0 ^6.5.5
~10.1.7 ~10.1.6 ^10.13.0 || ^12.11.1 >=3.9.4 <4.1.0 ^6.5.5
~10.0.8 ~10.0.14 ^10.13.0 || ^12.11.1 ~3.9.4 ^6.5.5
~9.1.15 ~9.1.13 ^10.13.0 || ^12.11.1 >=3.6.5 <3.9.0 ^6.5.5
~9.0.7 ~9.0.7 ^10.13.0 || ^12.11.1 >=3.6.5 <3.8.0 ^6.5.5
~8.3.29 ~8.2.14 ^10.9.0 ~3.5.3 ^6.4.0
~8.2.2 ~8.2.14 ^10.9.0 ~3.4.5 ^6.4.0
~8.1.3 ~8.1.3 ^10.9.0 ~3.4.5 ^6.4.0
~8.0.6 ~8.0.3 ^10.9.0 ~3.4.5 ^6.4.0
~7.3.9 ~7.2.15 ^8.9.4 || ^10.9.0 ~3.2.4 ^6.3.3
~7.2.4 ~7.2.15 ^8.9.4 || ^10.9.0 ~3.2.4 ^6.3.3
~7.1.4 ~7.1.4 ^8.9.4 || ^10.9.0 ~3.1.6 ^6.3.3
~7.0.7 ~7.0.4 ^8.9.4 || ^10.9.0 ~3.1.6 ^6.3.3
~6.2.9 ~6.1.10 ^8.9.4 ~2.9.2 ^6.2.2
~6.1.5 ~6.1.10 ^8.9.4 ~2.7.2 ^6.2.2
~6.0.8 ~6.0.9 ^8.9.4 ~2.7.2 ^6.0.0
~1.7.4 ~5.2.11 ^6.9.5 || ^8.9.4 ~2.5.3 ^5.5.12
~1.6.7 ~5.2.11 ^6.9.5 || ^8.9.4 ~2.5.3 ^5.5.12
~1.5.6 >=5.0.5 <=5.1.3 ^6.9.5 || ^8.9.4 >=2.4.2 <2.6.0 ^5.5.12
~1.4.10 >=4.2.6 <=4.4.7 ^6.9.5 || ^8.9.4 ~2.4.2 ^5.0.3
~1.3.2 >=4.2.6 <=4.4.7 ^6.9.5 ~2.4.2 ^5.0.3
~1.2.7 >=4.0.3 <=4.1.3 ^6.9.5 ~2.3.4 ^5.0.3
~1.1.3 >=4.0.3 <=4.1.3 ^6.9.5 ~2.3.4 ^5.0.3
~1.0.6 >=4.0.3 <=4.1.3 ^6.9.5 ~2.2.2 ^5.0.3
1.0.0-rc.4 ~2.4.10 ^6.9.5 ~2.0.10 ^5.0.3
1.0.0-beta.30 ~2.3.1 ^6.9.5 ~2.0.10 ^5.0.3
1.0.0-beta.22-1 (package name: angular-cli) ~2.2.4 ^6.9.5 ~2.0.10 ^5.0.3
1.0.0-beta.20-1 (package name: angular-cli) ~2.1.2 ^6.9.5 ~2.0.10 ^5.0.3
1.0.0-beta.17 (package name: angular-cli) ~2.0.2 ^6.9.5 ~2.0.10 ^5.0.3
@LayZeeDK
Copy link
Author

LayZeeDK commented Apr 5, 2022

@deepak-prabhu
Those were not ES Modules.

@deepak-prabhu
Copy link

Hi @LayZeeDK yes. Now with angular 13, I see only .mjs files in those node modules angular core location and no js files so I have added .mjs file location inside scripts section of angular json configuration

@vn2509671vn
Copy link

I've angular v4 project, @LayZeeDK please help me to run project

@LayZeeDK
Copy link
Author

Hi, @vn2509671vn

Which issues are you facing?

@prafulh
Copy link

prafulh commented Apr 18, 2022

This is really helpful. Thanks a lot!

@mkadev
Copy link

mkadev commented Apr 29, 2022

Hi @vn2509671vn,
This matrix so useful!! Thanks a lot for putting in the time and sharing!

@jerone
Copy link

jerone commented Apr 30, 2022

@mkadev commented on Apr 29, 2022, 9:49 AM GMT+2:

Hi @vn2509671vn,
This matrix so useful!! Thanks a lot for putting in the time and sharing!

@LayZeeDK you probably mean.

@jerone
Copy link

jerone commented Apr 30, 2022

@LayZeeDK The following packages are somewhat coupled with Angular:

  • tslib
  • zone.js
  • core.js

How tightly coupled are they with Angular and would it be useful to include those in the matrix?

@LayZeeDK
Copy link
Author

LayZeeDK commented May 1, 2022

Thanks for the feature request, @jerone! Lately, I have been considering adding zone.js and tslib.

core-js is about polyfills so its usage largely depends on your needs. Even then, alternatives are available, it's not a requirement.

@jerone
Copy link

jerone commented May 1, 2022

Thanks for the feature request, @jerone! Lately, I have been considering adding zone.js and tslib.

👍 I personally would find that helpful.

core-js is about polyfills so its usage largely depends on your needs. Even then, alternatives are available, it's not a requirement.

Makes sense. It looks like they stopped using/integrating core.js when Angular removed support for IE.

@LayZeeDK
Copy link
Author

LayZeeDK commented May 1, 2022

If someone is up for the task, fork the Gist, add zone.js and/or tslib columns and comment a link in this thread.

@mkadev
Copy link

mkadev commented May 16, 2022

@mkadev commented on Apr 29, 2022, 9:49 AM GMT+2:

Hi @vn2509671vn,
This matrix so useful!! Thanks a lot for putting in the time and sharing!

@LayZeeDK you probably mean.

Gah, yes, of course :-(

@tcsdmaic
Copy link

Node.js version 18 is now the "current" version: https://nodejs.org/en/about/releases/
Can this be updated to show what is compatible with that?
Thank you!!

@LayZeeDK
Copy link
Author

LayZeeDK commented Jun 16, 2022

@tcsdmaic
The Angular CLI adds support for Node.js (Active) LTS versions, not Node.js Current versions.

From your link:

Production applications should only use Active LTS or Maintenance LTS releases.

@JuanDMoreno04
Copy link

Hello, I currently have a project that is made with Angular v9.1.13, the Typescript is v3.8 and the Node is v12. On my PC I have Angular v14, Node v16 and Typescript 4.7 installed. I had a problem compiling it and I was wondering, will I have to download the version of Angular from v14 that I have installed to v12, so that I can compile that project made in v9?

@LayZeeDK
Copy link
Author

LayZeeDK commented Jun 25, 2022

@JuanDMoreno04
Your issue is that Angular 9.1 only supports Node.js 10 and 12. You must downgrade to Node.js 12 and a package manager version compatible with whatever is used in that project. Then install node_modules from scratch in the project directory and hopefully you are good to go. Your global version of Angular CLI doesn't impact local versions except if you have an ancient global version. Your global version of TypeScript doesn't impact local versions.

@bigcreate
Copy link

bigcreate commented Jul 1, 2022

Angular 14.0 uses TS v4.7.2, rxjs 6.6.7
Besides, I haven't found that angular12+ can use rxjs7+

@LayZeeDK
Copy link
Author

LayZeeDK commented Jul 1, 2022

That aligns with what's described in the compatibility matrix, @bigcreate 🙂

@jameskentTX
Copy link

jameskentTX commented Jul 31, 2022

Node for Angular 14 in https://unpkg.com/browse/@angular/core@14.1.0/package.json:

"engines": { "node": "^14.15.0 || >=16.10.0" }

@LayZeeDK
Copy link
Author

LayZeeDK commented Aug 5, 2022

@bigcreate
Angular 14.0 supports TypeScript 4.6 and 4.7.

Which issues have you had with RxJS 7 + Angular >=12.2?

@LayZeeDK
Copy link
Author

LayZeeDK commented Aug 5, 2022

Thanks @jameskentTX, Node.js 14.15.5 doesn't exist, it must have been a typo from my side.

@andreclerigo
Copy link

What about Angular and Angular CLI 14.2.1, is it the same as 14.2.0?

@jerone
Copy link

jerone commented Aug 29, 2022

@andreclerigo You can follow the changes from Angular here: https://github.com/angular/angular-cli/releases

Only CLI looks updated. Not Core.

CLI had no changes to Node.js, TypeScript or RxJS version.

@LayZeeDK
Copy link
Author

LayZeeDK commented Aug 30, 2022

Yes, @andreclerigo. Use @angular/cli@14.2.1 with @angular/core@14.2.0.

The tilde character (~) matches all patch versions.

The 4 public repositories maintained by the Angular team are grouped into the following release groups:

@AMorgaut
Copy link

Thanks for that work
would love to see a Nx column

@jameskentTX
Copy link

With angular 15.1.0 we can use newest typescript:

  "peerDependencies": {
    "@angular/compiler": "15.1.0",
    "typescript": ">=4.8.2 <5.0"
  },

@LayZeeDK
Copy link
Author

Thank you, @jameskentTX. I have included this change.

@LayZeeDK
Copy link
Author

Please help upvote the pull request to include this table on angular.io angular/angular#48753.

@MommaRoo37
Copy link

Hello LayZeeDK
I'm new to updating an existing Angular project (v11 currently & want to move to v14 or 15). Do you have steps that you recommend to perform this type of upgrade? We use Kendo Angular that has caused more peer dependency issues. Does anyone have experience or is there a compatibility matrix somewhere? Thank you for your excellent matrix!

@LayZeeDK
Copy link
Author

LayZeeDK commented Feb 8, 2023

@MommaRoo37
I wrote a book that contains an Angular migration and maintenance guide: Accelerating Angular Development with Ivy.

To look up peer dependencies for Kendo Angular, use something like unpkg or use the Code (Beta) tab on npm then open package.json.

@andresmru
Copy link

Hi, I need your help.
We have an angular v14 application with node.js v14 but now in order to publish to azure, I have to upgrade to node.js v18, are both compatibles or need to upgrade angular to a newer version? I'm getting erros in my compilation process.

@jerone
Copy link

jerone commented Mar 1, 2023

@andresmru You don't need to upgrade to Node.js 18. Only the default Node.js version is set to that version. You can set your desired Node.js version in your pipeline:

- task: NodeTool@0
  inputs:
    versionSpec: '16.x'
  displayName: 'Install Node.js'

@jerone
Copy link

jerone commented Apr 18, 2023

@LayZeeDK Let's hope your PR gets merged soon. 🙏

Until then, I'm seeing a difference between the PR and here with RxJS minimal version ^6.5.5, which should be ^6.5.3.
Confirmed via https://unpkg.com/browse/@angular/core@15/package.json

Would you mind adding version 14.3.0 to the list, which appears to be the same as 14.2.0 (needs confirmation).

@LayZeeDK
Copy link
Author

Would you mind adding version 14.3.0 to the list, which appears to be the same as 14.2.0 (needs confirmation).

Thanks, @jerone! 🙌 I added Angular 14.3 in this Gist and to the Angular pull request.

@LayZeeDK
Copy link
Author

Until then, I'm seeing a difference between the PR and here with RxJS minimal version ^6.5.5, which should be ^6.5.3.

@jerone

Yes, for this Gist my decision was to always list the latest patch version to encourage the community to patch their dependencies. In the Angular pull request, I matched the dependency version ranges listed in the package.json files of the @angular/* packages. I don't think it's worth changing this Gist at this point.

@LayZeeDK
Copy link
Author

Good news. We can now refer to https://angular.io/guide/versions instead of this Gist.

@w11z
Copy link

w11z commented Apr 21, 2023

hi, seems angular cli v15.2.6 needs node 16.14, got the following today

lru-cache@9.1.0: The engine "node" is incompatible with this module. Expected version "14 || >=16.14". Got "16.13.2"

that lead me through dependency graph to "@angular/cli@^15.2.6"

Angular CLI: 15.2.6
Node: 16.13.2
Package Manager: yarn 1.22.15
OS: win32 x64

Angular: 15.2.7
... animations, cdk, common, compiler, compiler-cli, core, forms
... language-service, material, material-moment-adapter
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1502.6
@angular-devkit/build-angular   15.2.6
@angular-devkit/core            15.2.6
@angular-devkit/schematics      15.2.6
@angular/cli                    15.2.6
@schematics/angular             15.2.6
rxjs                            6.5.5
typescript                      4.9.5

@LayZeeDK
Copy link
Author

@w11z
As seen in its package.json file, Angular CLI 15.2.x declares its Node.js version range as ^14.20.0 || ^16.13.0 || >=18.10.0. lru-cache 9.1.x requires Node.js 14 || >=16.14 (package.json). Which dependency needs lru-cache though?

@w11z
Copy link

w11z commented Apr 22, 2023

@LayZeeDK I ckecked yarn.lock, the dependency path from lru-cache to angular cli is the following

lru-cache@^9.0.0:
  version "9.1.0"

path-scurry@^1.6.1:
  version "1.7.0"
  
glob@^9.3.0, glob@^9.3.1:
  version "9.3.5"
   
read-package-json@^6.0.0:
  version "6.0.1"

pacote@15.1.0:
  version "15.1.0"
  
"@angular/cli@^15.2.6":
  version "15.2.6"

@LayZeeDK
Copy link
Author

LayZeeDK commented Apr 22, 2023

Interesting. Of course, the fix is easy: yarn install --ignore-engines or update Node.js.

@w11z
Copy link

w11z commented Apr 23, 2023

Interesting. Of course, the fix is easy: yarn install --ignore engines or update Node.js.

@LayZeeDK thanks for the workaround. Anyway my initial comment was more about updating the table so it won't confuse people who would come after me :)

@jerone
Copy link

jerone commented Apr 23, 2023

@w11z You might want to report this to Angular, so they can update their own minimum versions.

@dangrussell
Copy link

Please update the 16.0.0 row and add these additional rows:

~17.0.0,~17.0.0,^18.13.0 || ^20.9.0,	>=4.9.3 <5.3.0,^6.5.3 || ^7.4.0
~16.2.0,~16.2.0,^16.14.0 || ^18.10.0,	>=4.9.3 <5.2.0,^6.5.3 || ^7.4.0
~16.1.0,~16.1.0,^16.14.0 || ^18.10.0,	>=4.9.3 <5.2.0,^6.5.3 || ^7.4.0
~16.0.0,~16.0.0,^16.14.0 || ^18.10.0,	>=4.9.3 <5.1.0,^6.5.3 || ^7.4.0

See https://angular.io/guide/versions#actively-supported-versions

Thank you for maintaining this!

@LayZeeDK
Copy link
Author

LayZeeDK commented Nov 9, 2023

Hi @dangrussell,

This Gist is no longer maintained as it has been integrated into the official Angular documentation as per your link:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment