Is there a compatibility list for Angular / Angular-CLI and Node.js?
Asked Answered
U

5

398

I periodically run into the problem, having to spin up old Angular projects with deprecated dependencies of Angular.

Because I unsually run the latest Node.js version (at least lates LTS version) I often had the problem, that I wasn't able to get the old projects running. I solved this by using a node version manager, but still I often have the problem that I'm not sure what is the best Node.js version to use for Angular Version X.

Sadly the official release notes handle this topic shabbily and are not a true help, especially if you like to know as of which Angular Version you can't use a specific Node.js version anymore...

Is there a complete compatibility list to check which Angular version is compatible with which Node.js version?

Unilateral answered 16/2, 2020 at 12:28 Comment(3)
Are you reinstalling node modules each time?Sidetrack
No, I use a version manager to switch between Node.js versions. They remain installed, but through symlinks it is determined which version is currently used.Unilateral
Just giving a comment to help search engines, if you have the error "npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve..." seems to happen because you installed latest nodeJs version for an old Angular version. This post helped me to fix Angular11 by installing node v12 (when latest node version is v16).Kampmann
F
947

UPDATE: 2024 The new docs introduced a new resource for version compatibility

Alternatively you can navigate to compatibility versions by using ngvm, e.g:
npx -y ngvm compat


Since April 2023 Angular docs provide a table of compatible versions:

Angular CLI version Angular version Node.js version TypeScript version RxJS version
17.0.x 17.0.x ^18.13.0 || ^20.9.0 >=4.9.3 <5.3.0 ^6.5.3 || ^7.4.0
~16.2.6 ~16.2.10 ^16.14.0 || ^18.10.0 >=4.9.3 <5.2.0 ^6.5.5 || ^7.4.0
~16.1.0 ~16.1.0 ^16.13.0 || ^18.10.0 >=4.9.3 <5.1.0 ^6.5.5 || ^7.4.0
~16.0.0 ~16.0.0 ^16.13.0 || ^18.10.0 >=4.9.3 <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.2 <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
~15.0.0 ~15.0.0 ^14.20.0 || ^16.13.0 || ^18.10.0 ~4.8.4 ^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.5.5 ^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.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.3.5 ^6.5.5 || ^7.0.1
~12.1.4 ~12.1.5 ^12.14.1 || ^14.15.0 >= 4.2.4 <= 4.3.5 ^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.1.6 ^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.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.0.8 ^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.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.8.3 ^6.5.5
~9.0.7 ~9.0.7 ^10.13.0 || ^12.11.1 >= 3.6.5 <= 3.7.7 ^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 < 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.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.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

This has originally published here by Lars Gyrup Brink Nielsen

Fosterling answered 17/2, 2020 at 8:36 Comment(17)
I would have prefered an official resource, but I guess this is the best we can get for now (and it seems pretty complete and up to date), thus thank you.Unilateral
Angular 11 should be compatible with LTS at the time. So it should work fine with 14.15.1. So far, in my testing, it does.Tryparsamide
If you are here you might want to enable multiple versions of node. this is how on nubo.eu/Install-Multiple-Node-Versions-On-Windows (links for mac/linux are on the page, in case the page vanish here is the package: github.com/coreybutler/nvm-windows)Dehiscence
No unofficial resource for this? The Angular v11 => v12 upgrade guide only states You can no longer use Angular with Node.js version 10 or older. What a useless comment in relation to the unofficial documentation. I've tried Node v16 and it completely failed w/ Angular 12. If I buy software from the store I need to know if it runs on Windows. The box tells me. So why can't Google tell us this simple info?Diagenesis
for Angular 13.1.x also you can use 16.13.x or later minor versionXerophyte
How should the column 'Typescript' be read? It says '4.6.x/4.8.x' for Angular 14. But the link states >= 4.6.0 < 4.8.0, so shouldn't the column state '4.6.x/4.7.x' ?Pulchritude
this helped me to solve the "npm ERR! code ERESOLVE - npm ERR! ERESOLVE could not resolve" issue, thanks.Kampmann
What about AngularJS (Angular 1)?Gallagher
@Gallagher AnuglarJS has being deprecatedFosterling
@angularrocks.com I now this. But it is still in use in many projects. So I'm interested if there are limitations or recommendations regarding the node version usedGallagher
What I need is the compatible versions of npm. I don't know why nobody seems to care about this, we don't use node directly when programming in Angular, we use npm to manage dependencies, and this is where most of the trouble comes from.Neese
Guys, any idea if it's possible to install angular/cli:1.7.4 on node 16 version, because I'm getting "gyp verb which failed Error: not found: python" exception. Even if I install python2, g++ and make packages, I'm still getting gyp ERR! stack Error: make` failed with exit code: 2` install errors. Any idea how to get angular/cli:1.7.4on node16 work ?Accounting
@Accounting it is not possible, for angular/cli:1.7.4 you need node ^6.9.5 || ^8.9.4, as per table above.Fosterling
Any hack to install the package, with nide 16 version ?Accounting
There is now an official table with this: angular.io/guide/versionsGave
It looks like you're the author of NGVM, in which case you need to include that information in the post per e.g. stackoverflow.com/help/promotionCotidal
The table says typescript ">=4.9.3 <5.3.0" for Angular v17.0.x but when I checked @angular/[email protected], its peerDependencies stands for "typescript": ">=5.2 <5.3". Is this a mistake or is it not possible to use typescript v4 together with Angular 17?Epicurean
T
27

I acknowledge that this does not actually answer your question. But it does provide some relevant information for current version (which is what brought me here).

Here is the official word from Angular on current version:

https://angular.io/guide/setup-local

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

In the notes you will see a link to a package.json file that contains an "engines" section. For Angular 11 it says:

  "engines": {
    "node": ">= 10.13.0",
    "npm": ">= 6.11.0",
    "yarn": ">= 1.13.0"
  },

It might be possible to look at the released version of package.json in GitHub and determine the engines.node setting?

Tryparsamide answered 23/11, 2020 at 21:20 Comment(2)
Nice idea. A new Angular 13 project has 647 hits for engines within package-lock.json. However, I guess we're looking for the CLI's NodeJS compat here which is "node": "^12.20.0 || ^14.15.0 || >=16.10.0"Punic
Related discussion on Angular's Github repo.Outfox
A
6

Official document by Angular - https://angular.io/guide/versions

They keep it updated and also have a separate list of unsupported versions.

Archery answered 5/5, 2023 at 4:34 Comment(0)
L
1

I have a similar problem. I uninstalled angular cli and reinstaled a previous version several times, until reaching angular cli v9, but when I try to run "ionic serve" I still get the same message "The Angular CLI requires a minimum Node.js version of either v14.15 or 16.10". Always the same message though I now have Angular CLU v9 and node v12.20.0 (I can't install a higher version of node.js because I have windows 7 in an old notebook and I can't buy a new one).

Loreenlorelei answered 31/7, 2022 at 22:39 Comment(0)
E
1

You can use the Angular Update Guide to find the node version supported. This is official guide from Google.

Just pretend you are upgrading from a old version. For instance, if you are on Angular 15, set the guide to upgrade from 14 to 15 and it will let you know what node version you need.

example: enter image description here

Enactment answered 21/4, 2023 at 14:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.