Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Angular CLI, Angular, Node.js, TypeScript, and RxJS version compatibility matrix. Based on changelogs, metadata, and hands-on experience. Major Node.js and RxJS versions above officially supported versions are not listed. Note that minor TypeScript versions also contain breaking changes.
Angular CLI version Angular version Node.js version TypeScript version RxJS version
1.0.0-beta.17 (package name: angular-cli) ~2.0.2 ^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.22-1 (package name: angular-cli) ~2.2.4 ^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-rc.4 ~2.4.10 ^6.9.5 ~2.0.10 ^5.0.3
~1.0.6 >= 4.0.3 <= 4.1.3 ^6.9.5 ~2.2.2 ^5.0.3
~1.1.3 >= 4.0.3 <= 4.1.3 ^6.9.5 ~2.3.4 ^5.0.3
~1.2.7 >= 4.0.3 <= 4.1.3 ^6.9.5 ~2.3.4 ^5.0.3
~1.3.2 >= 4.2.6 <= 4.4.7 ^6.9.5 ~2.4.2 ^5.0.3
~1.4.10 >= 4.2.6 <= 4.4.7 ^6.9.5 || ^8.9.4 ~2.4.2 ^5.0.3
~1.5.6 >= 5.0.5 <= 5.1.3 ^6.9.5 || ^8.9.4 >= 2.4.2 <= 2.5.3 <= 5.5.12 < 6.0.0
~1.6.7 ~5.2.11 ^6.9.5 || ^8.9.4 ~2.5.3 <= 5.5.12 < 6.0.0
~1.7.4 ~5.2.11 ^6.9.5 || ^8.9.4 ~2.5.3 <= 5.5.12 < 6.0.0
~6.0.8 ~6.0.9 ^8.9.4 ~2.7.2 ^6.0.0
~6.1.5 ~6.1.10 ^8.9.4 ~2.7.2 ^6.2.2
~6.2.9 ~6.1.10 ^8.9.4 ~2.9.2 ^6.2.2
~7.0.7 ~7.0.4 ^8.9.4 || ^10.9.0 ~3.1.6 ^6.3.3
~7.1.4 ~7.1.4 ^8.9.4 || ^10.9.0 ~3.1.6 ^6.3.3
~7.2.4 ~7.2.15 ^8.9.4 || ^10.9.0 ~3.2.4 ^6.3.3
~7.3.9 ~7.2.15 ^8.9.4 || ^10.9.0 ~3.2.4 ^6.3.3
~8.0.6 ~8.0.3 ^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.2.2 ~8.2.14 ^10.9.0 ~3.4.5 ^6.4.0
~8.3.29 ~8.2.14 ^10.9.0 ~3.5.3 ^6.4.0
~9.0.7 ~9.0.7 ^10.13.0 || ^12.11.1 >= 3.6.5 <= 3.7.7 ^6.5.5
~9.1.15 ~9.1.13 ^10.13.0 || ^12.11.1 >= 3.6.5 <= 3.8.3 ^6.5.5
~10.0.8 ~10.0.14 ^10.13.0 || ^12.11.1 ~3.9.4 ^6.5.5
~10.1.7 ~10.1.6 ^10.13.0 || ^12.11.1 >= 3.9.4 <= 4.0.8 ^6.5.5
~10.2.4 ~10.2.5 ^10.13.0 || ^12.11.1 >= 3.9.4 <= 4.0.8 ^6.5.5
~11.0.7 ~11.0.9 ^10.13.0 || ^12.11.1 ~4.0.8 ^6.5.5
~11.1.4 ~11.1.2 ^10.13.0 || ^12.11.1 >= 4.0.8 <= 4.1.6 ^6.5.5
~11.2.19 ~11.2.14 ^10.13.0 || ^12.11.1 >= 4.0.8 <= 4.1.6 ^6.5.5
~12.0.5 ~12.0.5 ^12.14.1 || ^14.15.0 ~4.2.4 ^6.5.5
~12.1.4 ~12.1.5 ^12.14.1 || ^14.15.0 >= 4.2.4 <= 4.3.5 ^6.5.5
~12.2.0 ~12.2.0 ^12.14.1 || ^14.15.0 >= 4.2.4 <= 4.3.5 ^6.5.5 || ^7.0.1
~13.0.4 ~13.0.3 ^12.20.2 || ^14.15.0 || ^16.10.0 ~4.4.4 ^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.5.5 ^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.5.5 ^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
~14.0.7 ~14.0.7 ^14.15.0 || ^16.10.0 >= 4.6.0 < 4.8.0 ^6.5.5 || ^7.4.0
~14.1.3 ~14.1.3 ^14.15.0 || ^16.10.0 >= 4.6.0 < 4.8.0 ^6.5.5 || ^7.4.0
~14.2.0 ~14.2.0 ^14.15.0 || ^16.10.0 >= 4.6.0 < 4.9.0 ^6.5.5 || ^7.4.0
@deepak-prabhu
Copy link

deepak-prabhu commented Apr 4, 2022

hi @LayZeeDK Thank you for reply. Yes, I have replaced those with .mjs files eg: ./node_modules/@angular/core/esm2020/core.mjs in angular.json (scripts section). Build is working fine. However when I run the app I'm getting "Uncaught SyntaxError: Unexpected token 'export". in browser. Please suggest if you have come across such issues or any workaround for this?

@LayZeeDK
Copy link
Author

LayZeeDK commented Apr 4, 2022

@deepak-prabhu
Node.js 12 only has experimental support for ES Modules when passing the --experimental-modules flag.

@deepak-prabhu
Copy link

deepak-prabhu commented Apr 5, 2022

@LayZeeDK Thank you for reply.

My use case is little different. I have single page application build using angular 13 (Node version is 12.20.2).

Inside scripts section of angular.json I have below entries:

"scripts": [
"./node_modules/@angular/core/esm2020/core.mjs",
"./node_modules/@angular/common/esm2020/common.mjs"
]

If I execute the above script manually eg: node --es-module-specifier-resolution=node ./node_modules/@angular/core/esm2020/core.mjs works fine.

ng build is also working fine. However when I run the app I'm getting "Uncaught SyntaxError: Unexpected token 'export". in browser. Browser throws an error for export keyword that is used inside core.mjs

@LayZeeDK
Copy link
Author

LayZeeDK commented Apr 5, 2022

@deepak-prabhu
Oh, that scripts section! I don't know if Angular CLI can add those scripts with type=module attributes. If not, you will have to add them yourself.

But what are you're trying to do? Why do you need Angular in the global scope? Did you consider JIT compilation?

@deepak-prabhu
Copy link

deepak-prabhu commented Apr 5, 2022

hi @LayZeeDK

Earlier we had Angular 8 with below code in Angular.json. As part of Angular 13 update, I have just updated the paths for scripts

"scripts": [
"./node_modules/@angular/core/bundles/core.umd.min.js",
"./node_modules/@angular/common/bundles/common.umd.min.js",
]

@LayZeeDK
Copy link
Author

LayZeeDK commented Apr 5, 2022

@deepak-prabhu
Those were not ES Modules.

@deepak-prabhu
Copy link

deepak-prabhu commented Apr 5, 2022

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

vn2509671vn commented Apr 14, 2022

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

@LayZeeDK
Copy link
Author

LayZeeDK commented Apr 14, 2022

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

tcsdmaic commented Jun 15, 2022

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

JuanDMoreno04 commented Jun 24, 2022

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

andreclerigo commented Aug 29, 2022

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 repos maintained by the Angular team is grouped into the following release groups:

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