mrkeyoor.com_
Tue 01 Sept 17:39 UTC
Dev Toolsevaluationupdated 26 Aug 2026

angular-cli review

Angular CLI creates, serves, tests, builds, and upgrades Angular applications from the command line. It gives Angular teams one supported workflow for workspace configuration, code generation, development servers, production bundles, and server-side rendering.

-4stars / 7d
Verdict

Our Angular CLI install added 1,539 packages and used 909 MB, while both the 125-second build and 73-second test run failed on Bazel archive downloads. Use the published CLI for Angular work because its generators, builders, and migrations are the framework's supported path. Budget a heavier, network-sensitive contributor setup if you plan to modify the CLI itself or reproduce its full build inside a restricted environment.

We ran it

Install✓ · 32s1539 packages · 909 MB
Build✗ · 125s
Tests✗ · 73sran, no count parsed
Repo2092 files~202,321 lines of source · 9.7 MB · 5 CI workflows · tests dir

Answers from our run

Does angular-cli build from source?

Dependencies installed in 32 seconds (1539 packages), and the build failed. We cloned commit 07f9122 into a clean Debian container with 3 CPUs and no project-specific setup.

Do angular-cli's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use angular-cli?

Teams that are not committed to Angular: the CLI's builders, schematics, migrations, and workspace format are designed around that framework.

What are the alternatives to angular-cli?

Nx, Vite, Parcel. Our Angular CLI install added 1,539 packages and used 909 MB, while both the 125-second build and 73-second test run failed on Bazel archive downloads.

Setup3/5User setup is short; source build depends on many Bazel downloads
Docs5/5Dedicated guides cover CLI use, workspaces, schematics, and upgrades
Community5/527,023 stars with same-day releases and issue activity
Maturity5/5v22.1.6 continues a long supported Angular release line

Discussed on

  1. hnAngular v8.0274 points
  2. hnAngular Strict Mode7 points
  3. hnAngular is unable to build large applications4 points
  4. hnUse the Angular CLI for Faster Angular 2 Projects4 points
  5. hnRun Angular CLI repos directly in your browser3 points

Who it’s for

Teams building Angular applications that want the framework's supported generators and build system.
Organizations that prefer repeatable workspace conventions over assembling a frontend toolchain by hand.
Library authors and large workspaces that need Angular-aware migrations, schematics, testing, and SSR support.
Maintainers prepared to follow Angular's release cadence and upgrade guide.

Who it’s NOT for

Teams that are not committed to Angular: the CLI's builders, schematics, migrations, and workspace format are designed around that framework.
Contributors who need a small source checkout: our install added 1,539 packages and used 909 MB before Bazel fetched all build inputs.
Restricted build networks that cannot mirror GitHub release archives: our build and tests stopped while Bazel downloaded rules_shell, rules_python, protobuf, and rules_ts archives.
Projects expecting every older Webpack behavior under the newer build path: open issues cover deploy URLs, service-worker output, source maps, and unit-test compilation behavior.

Setup reality

Our pnpm install succeeded in 32 seconds, adding 1,539 packages and using 909 MB. The build failed with exit code 99 after 125 seconds, and tests failed with exit code 2 after 73 seconds. Both log tails show Bazel failing to download external rule archives from GitHub.

Using the published CLI is simpler: install @angular/cli, run ng new, then ng serve. Contributing to the 2,092-file monorepo needs pnpm, Bazel, its external archives, and the repository's developer workflow.

The checkout has about 202,321 source lines, 5 CI workflow files, a tests directory, and no Dockerfile. Corporate proxies and hermetic builders need an explicit plan for Bazel downloads and caches.

Angular CLI owns the supported Angular workflow

Angular CLI creates a workspace, scaffolds application code, runs the development server, builds production output, and applies framework migrations. That scope is narrower than a general monorepo manager and broader than a bundler. The useful part is coordination: Angular versions, workspace configuration, schematics, builders, testing, SSR, and upgrade tooling move together. A team avoids designing those seams itself, though it also accepts Angular's choices about them.

The repository contains 2,092 files and roughly 202,321 source lines in a 9.7 MB checkout. It is a pnpm workspace with the Angular build system, CLI, SSR package, DevKit libraries, Webpack integration, PWA schematics, and project generators. That package list explains why changing the CLI is different from installing @angular/cli as an application developer. Most users consume the released packages; contributors inherit the monorepo and Bazel graph.

Three commands start an app, but source work is much heavier

The documented application path is short: install @angular/cli globally, run ng new, enter the workspace, and start ng serve. Angular's main documentation then covers workspace files, configuration, schematics, CLI commands, and the update guide. For a team that has already chosen Angular, this is the default route and usually the least surprising one.

Our source install tells a different story. Pnpm added 1,539 packages in 32 seconds and occupied 909 MB. The repository has a tests directory and 5 CI workflow files, but no Dockerfile. Disk use was already substantial before Bazel completed its own external fetches. Contributors and build-infrastructure owners should cache both package-manager artifacts and Bazel inputs instead of treating this as an ordinary TypeScript package.

What happened when we ran it

We cloned commit 07f9122 into an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. Installation succeeded in 32 seconds. The build ran for 125 seconds and exited with code 99. Its log shows Bazel trying to download rules_shell v0.4.1, rules_python v1.7.0, and protobuf v29.0 archives from GitHub.

The build log reports a Java IOException for the rules_shell download, while other downloads ended with socket exceptions closed by interrupt. Bazel then could not load the rules_shell package, and the pnpm command failed. We do not infer whether the interruption came from a network policy, timeout, or another source. The direct finding is that the full build did not obtain its external rule archives in our sandbox.

Tests ran for 73 seconds and exited with code 2. Their final error concerned the aspect_rules_ts v3.10.0 archive from GitHub, so Bazel could not load the TypeScript option needed by the test command. The suite did not report passed or failed test cases in the supplied summary. Both failures happened after the 1,539-package pnpm install, which means a successful JavaScript dependency step is not proof that this repository is ready to build offline.

Bazel downloads are part of the contributor contract

Bazel gives Angular CLI a repeatable graph across many packages, generated artifacts, and cross-repository dependencies. In return, first runs may need archives beyond the pnpm lockfile. A company that blocks direct GitHub downloads should identify every repository rule, provide approved mirrors, and warm caches in the same environment used for CI. Our 198 seconds of failed build and test time is a practical warning for that setup.

Application developers have less exposure to this machinery because published npm packages contain the output they need. The separation is healthy, but it affects bug fixing. Reproducing a CLI issue against source may require Node, pnpm, Bazel, Java, network access for pinned archives, and enough disk for caches. A one-line ng failure can therefore lead to a much larger contributor environment.

v22.1.6 fixes builds and SSR on an active branch

GitHub listed v22.1.6 on August 26, 2026, the same day as the repository's latest push. The release changes unit-test build handling, batches prerender routes, shares in-memory server bundles, and aborts a web request signal when its Node request ends. GitHub also showed 27,023 stars and 270 open issues and pull requests. That combined count includes proposed code, dependency automation, and user reports.

Current issue activity names concrete edges: deploy URL handling for file-loader imports, service-worker entries that reference server-only files, zoneless unit tests with a transitive Zone.js dependency, persistent cache sizing, and inline source maps under the esbuild and Vite development path. These are reasons to test your workspace during upgrades, not evidence that maintenance has stopped. Same-day releases and pull requests show the opposite.

Angular commitment makes the CLI choice straightforward

Angular CLI is opinionated in useful ways. Schematics create Angular-shaped code, builders understand Angular compilation, and migrations carry workspaces between supported releases. The update guide gives teams a common upgrade sequence instead of leaving every application to invent one. MIT licensing permits internal changes, but maintaining a fork of framework tooling is rarely cheaper than contributing a focused fix upstream.

Choose Angular CLI when Angular is already the platform decision. If your real need is a framework-neutral bundler, Vite or Parcel removes much of this surface. If one repository mixes several frameworks and needs task orchestration across them, Nx is the closer comparison. Our failed source checks do not weaken the published CLI's role; they show that contributing to its 202,321-line build system needs dependable access to more than npm packages.

Alternatives

ProjectWhat it isPick it when
Nx gh↗A monorepo build system with Angular support plus tooling for other frameworks.pick this instead when one workspace spans Angular and other stacks or needs Nx task orchestration.
Vite gh↗A framework-flexible development server and production build tool.pick this instead when you want a smaller, less Angular-specific frontend toolchain.
ParcelA zero-configuration web application bundler with broad asset support.pick this instead when bundling matters more than Angular generators, migrations, and workspace conventions.

What people are saying

  1. [velocity-scout] angular/angular-cli

Sources

  1. Angular CLI README
  2. Angular CLI 22.1.6 release
  3. Angular CLI issue 33900
  4. Angular CLI issue 32789

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →