Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Angular CLI, Angular, Node.js, TypeScript, and RxJS compatibility matrix. Based on changelogs, metadata, and hands-on experience. Major 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.x 6.9.x or later minor version 2.0.x 5.0.x or later minor version
1.0.0-beta.20-1 (package name: angular-cli) 2.1.x 6.9.x or later minor version 2.0.x 5.0.x or later minor version
1.0.0-beta.22-1 (package name: angular-cli) 2.2.x 6.9.x or later minor version 2.0.x 5.0.x or later minor version
1.0.0-beta.30 2.3.x 6.9.x or later minor version 2.0.x 5.0.x or later minor version
1.0.0-rc.4 2.4.x 6.9.x or later minor version 2.0.x 5.0.x or later minor version
1.0.6 4.0.x/4.1.x 6.9.x or later minor version 2.2.x 5.0.x or later minor version
1.1.3 4.0.x/4.1.x 6.9.x or later minor version 2.3.x 5.0.x or later minor version
1.2.7 4.0.x/4.1.x 6.9.x or later minor version 2.3.x 5.0.x or later minor version
1.3.2 4.2.x/4.3.x/4.4.x 6.9.x or later minor version 2.4.x 5.0.x or later minor version
1.4.10 4.2.x/4.3.x/4.4.x 6.9.x/8.9.x or later minor version 2.4.x 5.0.x or later minor version
1.5.6 5.0.x/5.1.x 6.9.x/8.9.x or later minor version 2.4.x/2.5.x 5.5.x
1.6.7 5.2.x 6.9.x/8.9.x or later minor version 2.5.x 5.5.x
1.7.4 5.2.x 6.9.x/8.9.x or later minor version 2.5.x 5.5.x
6.0.8 6.0.x 8.9.x or later minor version 2.7.x 6.0.x or later minor version
6.1.5 6.1.x 8.9.x or later minor version 2.7.x 6.2.x or later minor version
6.2.9 6.1.x 8.9.x or later minor version 2.9.x 6.2.x or later minor version
7.0.7 7.0.x 8.9.x/10.9.x or later minor version 3.1.x 6.3.x or later minor version
7.1.4 7.1.x 8.9.x/10.9.x or later minor version 3.1.x 6.3.x or later minor version
7.2.4 7.2.x 8.9.x/10.9.x or later minor version 3.2.x 6.3.x or later minor version
7.3.9 7.2.x 8.9.x/10.9.x or later minor version 3.2.x 6.3.x or later minor version
8.0.6 8.0.x 10.9.x or later minor version 3.4.x 6.4.x or later minor version
8.1.3 8.1.x 10.9.x or later minor version 3.4.x 6.4.x or later minor version
8.2.2 8.2.x 10.9.x or later minor version 3.4.x 6.4.x or later minor version
8.3.29 8.2.x 10.9.x or later minor version 3.5.x 6.4.x or later minor version
9.0.7 9.0.x 10.13.x/12.11.x or later minor version 3.6.x/3.7.x 6.5.x/6.6.x
9.1.15 9.1.x 10.13.x/12.11.x or later minor version 3.6.x/3.7.x/3.8.x 6.5.x/6.6.x
10.0.8 10.0.x 10.13.x/12.11.x or later minor version 3.9.x 6.5.x/6.6.x
10.1.7 10.1.x 10.13.x/12.11.x or later minor version 3.9.x/4.0.x 6.6.x
10.2.x 10.2.x 10.13.x/12.11.x or later minor version 3.9.x/4.0.x 6.6.x
11.0.7 11.0.x 10.13.x/12.11.x or later minor version 4.0.x 6.6.x
11.1.4 11.1.x 10.13.x/12.11.x or later minor version 4.0.x/4.1.x 6.6.x
11.2.x 11.2.x 10.13.x/12.11.x or later minor version 4.0.x/4.1.x 6.6.x
12.0.5 12.0.x 12.14.x/14.15.x or later minor version 4.2.x 6.6.x
12.1.4 12.1.x 12.14.x/14.15.x or later minor version 4.2.x/4.3.x 6.6.x
12.2.x 12.2.x 12.14.x/14.15.x or later minor version 4.2.x/4.3.x 6.6.x/7.0.x or later minor version
13.0.x 13.0.x 12.20.x/14.15.x or later minor version 4.2.x/4.3.x 6.6.x/7.3.x or later minor version
@VhMuzini

This comment has been minimized.

Copy link

@VhMuzini VhMuzini commented Mar 10, 2021

Thank you

@LuisReinoso

This comment has been minimized.

Copy link

@LuisReinoso LuisReinoso commented Mar 11, 2021

Thanks a lot!

@JudyLipinski

This comment has been minimized.

Copy link

@JudyLipinski JudyLipinski commented Mar 12, 2021

Thanks!

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Mar 12, 2021

Thanks for your kind words 😊 Support and encouragement matter!

@EugeneLeclerc

This comment has been minimized.

Copy link

@EugeneLeclerc EugeneLeclerc commented Mar 12, 2021

Your work matters too :)

@johnmanko

This comment has been minimized.

Copy link

@johnmanko johnmanko commented Mar 12, 2021

Very useful.

@Verfranc

This comment has been minimized.

Copy link

@Verfranc Verfranc commented Mar 15, 2021

Thanks!

@alvarocjunq

This comment has been minimized.

Copy link

@alvarocjunq alvarocjunq commented Mar 23, 2021

Nice done @LayZeeDK
Tks a million

@Villanuevand

This comment has been minimized.

Copy link

@Villanuevand Villanuevand commented Mar 23, 2021

Thanks, Very useful!

@omostan

This comment has been minimized.

Copy link

@omostan omostan commented Mar 24, 2021

Very well done!
I come here regularly and I appreciate your excellent work.
Thank you for the regular updates!

@AlexGuironnetRTE

This comment has been minimized.

Copy link

@AlexGuironnetRTE AlexGuironnetRTE commented Mar 26, 2021

Thanks !

@michalkijas

This comment has been minimized.

Copy link

@michalkijas michalkijas commented Mar 30, 2021

❤️

@neil-borbon

This comment has been minimized.

Copy link

@neil-borbon neil-borbon commented Apr 6, 2021

Can I ask for the basis of this table please, that would help me out a lot, thanks!

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Apr 6, 2021

Hi @neil-borbon,

As mentioned in the description, this information is based on changelogs, metadata, and hands-on experience.

@troelsbentsen

This comment has been minimized.

Copy link

@troelsbentsen troelsbentsen commented Apr 8, 2021

What does this refer to: 10.13.x/12.11.x? Is it either one of the two? I am uncertain.

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Apr 8, 2021

Hi @troelsbentsen,

It refers to support for both 10.x and 12.x major versions of Node.js with that version of Angular but officially they have to be at least 10.13.0 or 12.11.0.

@leonletto

This comment has been minimized.

Copy link

@leonletto leonletto commented Apr 15, 2021

Thank you!

@bjornharvold

This comment has been minimized.

Copy link

@bjornharvold bjornharvold commented Apr 27, 2021

This is awesome! Something the Angular team should do themselves :-)

@ninadvadujkar

This comment has been minimized.

Copy link

@ninadvadujkar ninadvadujkar commented May 3, 2021

This is really cool. Thanks for all this cumulative information. I hope Angular team adds something like this to their documentation some day.

@roopeshreddy

This comment has been minimized.

Copy link

@roopeshreddy roopeshreddy commented May 17, 2021

Thanks for this!

@mfrieling

This comment has been minimized.

Copy link

@mfrieling mfrieling commented May 21, 2021

Thanks for this very helpful information. I have a serious problem now and maybe someone can help with this? I have an Angular 10 & Ionic 5 project which requires NPM 7.x. So I've installed Node 15.x. Now I have a new project with Angular 12 which I cannot setup due to the error message "The engine 'node' is incompatible with this module."

I searched a bit and found this:

Does anyone here know why Angular 12 stops supporting a current Node.js version?

@WinthorpeCross

This comment has been minimized.

Copy link

@WinthorpeCross WinthorpeCross commented May 21, 2021

Hi @mfrieling,

Does anyone here know why Angular 12 stops supporting a current Node.js version?

I'm not quite sure why Node 15x is not yet supported. I have worked around the problem by using nodist (alternatives are available as well) to manage my node & npm versions. It enables one to set a global and a local version of node/npm. For example, I am running node 15.x globally, but my Angular 12 project is set to use local node version 14.17.0:

nodist-screenshot

I mention this just in case it is helpful for you too... :)

@mfrieling

This comment has been minimized.

Copy link

@mfrieling mfrieling commented May 21, 2021

Hi @WinthorpeCross,
Node 15.x will never be supported as far as I understand the Node.js release policy:

After six months, odd-numbered releases (9, 11, etc.) become unsupported, and even-numbered releases (10, 12, etc.) move to Active LTS status and are ready for general use.
https://nodejs.org/en/about/releases/

But 16.x is the current version from April 20th 2021 till Oct 26th 2021 and thus should be supported. At least I couldn't find any information why Angular 12 stops supporting the current version and only supports the active LTS and maintenance LTS version.

But I managed to install Node 14 (including NPM 6) and then updating NPM to 7 and get both projects working with this combination.

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented May 25, 2021

As per the compatibility matrix, Angular started supporting Node.js 14.x in Angular 12.0 and removed support for Node.js 10.x but continues to support Node.js 12.x. Angular doesn't officially support Node.js 16.x.

As mentioned by one of you, the Node.js odd version major releases (11.x, 13.x, 15.x) are experimental and should be considered unstable. The Node.js even major releases (12.x, 14.x, 16.x) are stable LTS releases until replaced by a newer version.

NPM is independently updatable but might not support all Node.js major versions.

I use Volta to lock the Node.js version per project.

But 16.x is the current version from April 20th 2021 till Oct 26th 2021 and thus should be supported. At least I couldn't find any information why Angular 12 stops supporting the current version and only supports the active LTS and maintenance LTS version.

This must have been a misprint:

Angular 11 (and lower): "Angular requires a current, active LTS, or maintenance LTS version of Node.js."

Angular never officially supported current Node.js releases (the odd major version releases).

@aps08

This comment has been minimized.

Copy link

@aps08 aps08 commented May 25, 2021

I don't why its not working. My config:
typescript: 4.1.5
nodejs: 12.11.0
amgular 11.2.13

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented May 25, 2021

@aps08
Please try Node.js version 12.22.1.

@rsurendraidexcel

This comment has been minimized.

Copy link

@rsurendraidexcel rsurendraidexcel commented May 26, 2021

thank you, while updating the package in angular and node it's really cool help to manage.. TypeScript Dependency

@MEJDIGHORRI

This comment has been minimized.

Copy link

@MEJDIGHORRI MEJDIGHORRI commented Jun 2, 2021

Good job , Thanks !

@neil-borbon

This comment has been minimized.

Copy link

@neil-borbon neil-borbon commented Jun 6, 2021

In angular 2's docs, it says there you can install angular-cli though.

https://v2.angular.io/docs/ts/latest/cli-quickstart.html

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Jun 10, 2021

Hi @neil-borbon,

I added the prerelease Angular CLI versions built for the Angular 2.x versions.

@guillaumeferber

This comment has been minimized.

Copy link

@guillaumeferber guillaumeferber commented Jun 17, 2021

Excellent! Very useful information! Thanks

@ninjabhishek

This comment has been minimized.

Copy link

@ninjabhishek ninjabhishek commented Jun 21, 2021

angular 12.x actually requires nodejs v12.14.1 or above or nodejs 14.0.0 or above. refer engines here. also, the typescript version required is >=4.2.3 but <4.3.x, which is actually only 2 versions available today, 4.2.3 and 4.2.4. check about that here.

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Jun 22, 2021

Thanks for the update, @ninjabhishek 🤝

You're right about Node.js 12.14.x and I changed the matrix accordingly. By the way, refer to the engines metadata for the @angular/cli property as it has had that metadata for a long time whereas the @angular/core package has just now gotten it.

About Node.js 14.x, I list 14.15.x because that was the first LTS (stable) version of Node.js 14.x. I don't care what Angular's metadata says 😅

@aps08

This comment has been minimized.

Copy link

@aps08 aps08 commented Jun 23, 2021

if you are constantly changing version of node and angular then you also need to keep your eye on the version of npm you are having.
The version of npm also matters. Sometimes you need to downgrade your npm version.
error would look like: css@loader error or css-loader error

@mfrieling

This comment has been minimized.

Copy link

@mfrieling mfrieling commented Jun 23, 2021

@LayZeeDK, then it seems to be a quite persistent misprint.

This must have been a misprint:

Angular 11 (and lower): "Angular requires a current, active LTS, or maintenance LTS version of Node.js."

Angular never officially supported current Node.js releases (the odd major version releases).

The sentence

Angular requires a current, active LTS, or maintenance LTS version of Node.js.

can be found on setup local development guides for

And I'm not talking about the odd major version releases here but the even ones which later will become active and LTS only.

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Jun 23, 2021

That's right, @aps08. I was looking into this recently when I figured out the compatibility entries for Angular 2.x. We could consider an additional column for this. Until then, I recommend Volta. It's good at seamlessly switching Node.js and NPM versions on a per-project basis.

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Jun 23, 2021

@mfrieling

Angular has both historically and to this day only added support for new major versions of Node.js after they went LTS so I don't see a good reason to list pre-LTS versions of Node.js. Let me know if you spot a good reason.

Personally, I have experienced issues with trying to use Current Node.js versions before official support has been added to Angular.

@mfrieling

This comment has been minimized.

Copy link

@mfrieling mfrieling commented Jun 24, 2021

@LayZeeDK, I totally understand this. But I don't understand why the official documentation for Angular 9 to 11 says sth. different then.

@spicemix

This comment has been minimized.

Copy link

@spicemix spicemix commented Jul 2, 2021

Thanks for this!

But the thing I really want--and I know this is a lot to ask--is a list of the dependencies that should not be updated to their latest version for a given package. For instance, should I update to RxJS7 or not right now? It wouldn't break my code...the unanswered question is, would it break Angular in its latest stable release? Yes/no/who knows?

It should be a standard that known breaking updates are listed for every github package so we know what not to update and don't waste time re-testing facts the committers already are aware of. Thanks!

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Jul 14, 2021

@spicemix
You can figure this out by reading the package.json files of the Angular packages. For example, at the time of writing, this is the content of @angular/core's package.json file:

{
  "name": "@angular/core",
  "version": "12.1.2",
  "description": "Angular - the core framework",
  "author": "angular",
  "license": "MIT",
  "engines": {
    "node": "^12.14.1 || >=14.0.0"
  },
  "dependencies": {
    "tslib": "^2.2.0"
  },
  "peerDependencies": {
    "rxjs": "^6.5.3",
    "zone.js": "~0.11.4"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/angular/angular.git",
    "directory": "packages/core"
  },
  "ng-update": {
    "migrations": "./schematics/migrations.json",
    "packageGroup": [
      "@angular/core",
      "@angular/bazel",
      "@angular/common",
      "@angular/compiler",
      "@angular/compiler-cli",
      "@angular/animations",
      "@angular/elements",
      "@angular/platform-browser",
      "@angular/platform-browser-dynamic",
      "@angular/forms",
      "@angular/platform-server",
      "@angular/upgrade",
      "@angular/router",
      "@angular/language-service",
      "@angular/localize",
      "@angular/service-worker"
    ]
  },
  "sideEffects": false,
  "main": "./bundles/core.umd.js",
  "fesm2015": "./fesm2015/core.js",
  "esm2015": "./esm2015/core.js",
  "typings": "./core.d.ts",
  "module": "./fesm2015/core.js",
  "es2015": "./fesm2015/core.js"
}

(As seen at https://cdn.jsdelivr.net/npm/@angular/core/package.json)

We see that Angular 12.1.x has 3 external dependencies:

  • tslib supporting versions greater than or equal to 2.2.0 but below 3.0.0
  • rxjs supporting versions greater than or equal to 6.5.3 but below 7.0.0
  • zone.js supporting versions greater than or equal to 0.11.4 but below 0.12.0

If we upgrade these packages to versions beyond what is listed as officially supported by Angular, we are on our own.

@spicemix

This comment has been minimized.

Copy link

@spicemix spicemix commented Jul 14, 2021

I should have included in my comment that I understand package.json can (and once in a while, actually does) specify upgrade ranges. However, it's already known, judging from github comments, that RxJS7 works with Angular 12, but since it would potentially break user code, they won't up that designation until Angular 13.

What I want, specifically, is a summary of the best experience as reflected in test suites, effective user reports, developer understanding. If it's in package.json it will be automatically upgraded by npm/yarn. So it can't be there, but the knowledge is out there, presently difficult to mine out of stacks of github issues etc. Isn't this all about avoiding having to repeat work?

@Key-money

This comment has been minimized.

Copy link

@Key-money Key-money commented Jul 19, 2021

very helpful

@sajithmx

This comment has been minimized.

Copy link

@sajithmx sajithmx commented Jul 19, 2021

Awesome

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Jul 23, 2021

@spicemix
I don't think we should list major versions that are not officially supported by Angular. This guide does not try to list dependency combinations that are technically compatible. That's for projects to explore on their own.

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Jul 23, 2021

I have added officially compatible RxJS versions.

@omostan

This comment has been minimized.

Copy link

@omostan omostan commented Jul 23, 2021

I have added officially compatible RxJS versions.

Very useful information as well. Thanks!

@Yohandah

This comment has been minimized.

Copy link

@Yohandah Yohandah commented Aug 3, 2021

Nodejs 14.17 not supported ? Currently running Angular with Node v14.17.0 and it works

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Aug 19, 2021

@Yohandah

14.15.x or later minor version

This means 14.15.x, 14.16.x, 14.17.x are all officially supported but not 14.14.x and lower. They might work though.

@dangrussell

This comment has been minimized.

Copy link

@dangrussell dangrussell commented Aug 24, 2021

Angular 12.2 now officially has opt-in support for RxJS 7.

@RiteshAryal

This comment has been minimized.

Copy link

@RiteshAryal RiteshAryal commented Sep 19, 2021

How about, can anybody help me to find the similar compatible version for Angular 1.4.5 and its compatibility with Node (&npm) ?
I, in fact, search the most possible places.
Really appreciate the help.

@tchopra91

This comment has been minimized.

Copy link

@tchopra91 tchopra91 commented Sep 20, 2021

Great work, highly appreciate this information 🙂

@LayZeeDK

This comment has been minimized.

Copy link
Owner Author

@LayZeeDK LayZeeDK commented Sep 21, 2021

@RiteshAryal if you look at AngularJS version 1.4.5's package.json file, it claims that it supports Node.js 0.10.x and npm 2.5.x:

https://github.com/angular/angular.js/blob/v1.4.5/package.json#L10-L13

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