How to Check Your Angular Version (CLI, Project, and Global)

If you're working with Angular — whether you're debugging a build issue, checking compatibility before installing a package, or just getting oriented in an unfamiliar codebase — knowing which version you're running is a surprisingly important first step. Angular has gone through major releases over the years, and behavior, syntax, and tooling can vary significantly between them.

Here's a clear breakdown of every reliable way to check your Angular version, and why the answer isn't always as simple as one number.

Why Angular Version Checking Is More Nuanced Than It Seems

Angular isn't just one thing. When developers talk about "the Angular version," they might mean:

  • The Angular CLI version installed globally on their machine
  • The Angular core version used in a specific project
  • The Node.js version Angular is running on top of
  • The Angular packages installed (like @angular/common, @angular/router, etc.)

These can all be different. A developer might have Angular CLI 15 installed globally but be working inside a project that uses Angular 12. That mismatch matters when troubleshooting or adding dependencies.

Method 1: Using the Angular CLI Command 🔍

The fastest way to check your Angular version is through the command line.

Open your terminal and run:

ng version 

or the shorthand:

ng v 

This command outputs detailed information including:

  • Angular CLI version
  • Angular framework version (if run from within a project directory)
  • Node.js version
  • npm or yarn version
  • Operating system
  • All installed @angular/ packages* with their individual versions

Important distinction: Run ng versioninside a project folder to see project-specific Angular versions. Run it outside any project and you'll only see the globally installed CLI version, not any project's framework version.

Method 2: Checking the package.json File

Every Angular project includes a package.json file at its root. This file is the source of truth for what's installed in that specific project.

Look for entries like:

"dependencies": { "@angular/core": "^15.2.0", "@angular/common": "^15.2.0", "@angular/router": "^15.2.0" } 

The version number next to @angular/core is your Angular version for that project. The ^ symbol means the project can use that version or any compatible minor update — so the installed version may be slightly higher than what's listed.

To see the exact installed version (not just what's requested), check the package-lock.json file or run:

npm list @angular/core 

This returns the resolved, actually-installed version.

Method 3: Checking the node_modules Directory

If the CLI isn't available or you're working in a limited environment, you can read the version directly from the installed package files.

Navigate to:

node_modules/@angular/core/package.json 

Inside, find the "version" field. This is the exact version of Angular core currently installed in the project — no ambiguity, no range notation.

Comparing CLI Version vs. Framework Version

These two numbers are often confused, and they don't have to match.

What You're CheckingWhere to CheckWhat It Tells You
Angular CLI (global)ng version outside a projectThe CLI tooling version on your machine
Angular CLI (local)ng version inside a projectThe CLI version the project uses
Angular Frameworkng version inside a project or package.jsonThe actual Angular version your app runs
Individual packagesnpm list @angular/coreThe installed version of a specific package

Starting with Angular 6, the Angular framework and CLI version numbers were aligned to match — so Angular 14 CLI pairs with Angular 14 core. Before that, the numbering was separate, which still causes confusion when maintaining older projects.

Checking Angular Version Programmatically ⚙️

In some cases — particularly in larger or automated workflows — you may need to check Angular version from within the app itself.

Angular exposes version information through the VERSION object in @angular/core:

import { VERSION } from '@angular/core'; console.log(VERSION.full); // e.g., "15.2.4" 

This is useful for logging, error reporting, or version-gating features inside an app.

What Affects Which Version Is Running

Several factors determine which Angular version is actually active in any given environment:

  • Global vs. local CLI installations — npm can install the CLI globally or locally per project, and they can differ
  • Node.js compatibility — each Angular version requires a specific Node.js version range; mismatches can cause unexpected behavior
  • Package manager (npm vs. yarn vs. pnpm) — affects how versions are resolved and cached
  • Lock filespackage-lock.json or yarn.lock pin exact versions and prevent accidental upgrades
  • Monorepo setups — projects using Nx or Angular workspace configurations may have multiple Angular versions across different apps in the same repo

When Version Discrepancies Cause Problems

Not knowing which Angular version is running becomes a real problem when:

  • Installing a third-party library that targets a specific Angular version
  • Following documentation or tutorials written for a different version
  • Running build pipelines that expect a consistent environment
  • Migrating legacy code where Angular 1.x (AngularJS) and modern Angular (2+) are fundamentally different frameworks with different syntax and tooling entirely

AngularJS (1.x) and Angular (2+) are distinct frameworks. The version-checking methods above apply only to Angular 2 and later. AngularJS uses a different package (angular on npm, not @angular/core) and its version checking would follow the same package.json approach but looks entirely different under the hood.

The Variable That Changes Everything

What you actually need to know depends on your context. A developer setting up a new machine needs to verify the global CLI. Someone debugging a failed build needs to check what's installed in the project's node_modules. A team lead auditing several projects needs to compare package.json files across repos. Someone writing shared tooling might check the programmatic VERSION object.

The command is simple. What makes it meaningful is knowing which environment you're inspecting and what question you're actually trying to answer.