ngx-stats

August 16, 2025 ยท View on GitHub

Overview

ngx-stats is a CLI tool that analyzes Angular projects. It counts the number of modules, components, directives, pipes, and services โ€” including distinctions between:

  • Standalone vs. non-standalone declarations
  • OnPush vs. Default change detection

This utility helps developers understand the structure and architectural patterns of their Angular applications.


๐Ÿ“ฆ Installation

Install globally:

npm i -g ngx-stats

๐Ÿš€ Usage

In any Angular project directory:

ngx-stats
image

๐Ÿ“ Analyze a Specific Path

ngx-stats --path path/to/angular/project

or shorthand:

ngx-stats -p ./apps/admin

๐Ÿงฎ Output Results in JSON

ngx-stats --json
{
  "modules": 0,
  "services": 0,
  "components": {
    "total": 4,
    "standalone": 4,
    "notStandalone": 0,
    "onPush": 2,
    "default": 2
  },
  "directives": {
    "total": 0,
    "standalone": 0,
    "notStandalone": 0
  },
  "pipes": {
    "total": 0,
    "standalone": 0,
    "notStandalone": 0
  }
}

๐Ÿ”™ Legacy Mode (for Angular v14โ€“v18)

Angular v19+ treats components/directives/pipes as standalone by default.

To use legacy detection logic (standalone: true), add:

ngx-stats --legacy

or:

ngx-stats -l

๐Ÿงผ Ignored Files and Folders

The following are excluded by default:

๐Ÿ“‚ Ignored directories:

  • node_modules
  • dist
  • build
  • cache
  • .nx
  • .angular
  • Any directory that starts with a .

๐Ÿ“„ Ignored files:

  • Files ending in .stories.ts
  • Files ending in .spec.ts
  • Files ending in .d.ts

๐Ÿ†˜ Help

ngx-stats --help

๐Ÿ”ง CLI Options Summary

OptionAliasDescription
--path-pSpecify target directory to scan
--json-jOutput result as JSON
--legacy-lUse legacy detection logic (Angular v14โ€“v18: looks for standalone: true)
--verbose-vPrint file paths of: NgModules, non-standalone declarations, and non-OnPush
--help-hShow usage info