CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-angular--cli

Official command-line interface tool for Angular applications providing project generation, development server, build optimization, and deployment capabilities.

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

Angular CLI

The Angular CLI is the official command-line interface tool for Angular applications, providing comprehensive project generation, development server capabilities, build optimization, testing frameworks integration, and deployment tools. It offers both a rich CLI interface and a limited programmatic API for automation.

Package Information

  • Package Name: @angular/cli
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install -g @angular/cli or npx @angular/cli
  • Node.js Requirement: ≥20.19 or ≥22.12

Core Imports

import cli, { VERSION } from "@angular/cli";

For CommonJS:

const cli = require("@angular/cli").default;
const { VERSION } = require("@angular/cli");

Basic Usage

CLI Usage

# Create new Angular workspace
ng new my-app

# Generate components, services, etc.
ng generate component my-component
ng g service my-service

# Serve application in development
ng serve

# Build for production
ng build --configuration production

# Run tests
ng test
ng e2e

Programmatic Usage

import cli from "@angular/cli";

// Execute CLI commands programmatically
const exitCode = await cli({
  cliArgs: ["build", "--configuration", "production"]
});

console.log(`Build completed with exit code: ${exitCode}`);

Architecture

The Angular CLI is built around several key architectural components:

  • Command System: Modular command architecture with base classes for different command types
  • Schematics Integration: Built-in support for code generation using Angular Schematics
  • Architect Integration: Build system integration for running build, test, and lint targets
  • Workspace Management: Configuration management for Angular workspaces and projects
  • Package Management: Multi-package manager support (npm, yarn, pnpm, bun)

Capabilities

Programmatic API

Limited programmatic interface for executing CLI commands from Node.js applications.

/**
 * Execute Angular CLI commands programmatically
 * @param options - Configuration object with CLI arguments
 * @returns Promise resolving to exit code (0 = success, non-zero = error)
 */
export default function cli(options: { cliArgs: string[] }): Promise<number>;

/**
 * Current CLI version information
 */
export const VERSION: {
  readonly full: string;
  readonly major: string;
  readonly minor: string;
  readonly patch: string;
};

Programmatic API

CLI Commands

Comprehensive command-line interface with 19 primary commands covering the entire Angular development lifecycle.

# Project creation and management
ng new <name> [options]
ng add <package> [options]
ng update [packages...] [options]

# Code generation
ng generate <schematic> [options]
ng g <schematic> [options]

# Development workflow  
ng serve [options]
ng build [options]
ng test [options]
ng e2e [options]
ng lint [options]

# Utility commands
ng version
ng config [json-path] [value]
ng analytics <setting>
ng completion

CLI Commands

Workspace Configuration

Angular workspace and project configuration management system.

interface AngularWorkspace {
  basePath: string;
  extensions: Record<string, any>;
  projects: Record<string, ProjectDefinition>;
  getCli(): CliOptions;
  getProjectCli(projectName: string): CliOptions;
  save(): Promise<void>;
  load(): Promise<void>;
}

function getWorkspace(level?: 'local' | 'global'): AngularWorkspace | null;
function getWorkspaceRaw(level?: 'local' | 'global'): any;
function validateWorkspace(data: any): boolean;

Workspace Configuration

Package Management

Multi-package manager support with utilities for installation and dependency management.

enum PackageManager {
  npm = 'npm',
  cnpm = 'cnpm', 
  yarn = 'yarn',
  pnpm = 'pnpm',
  bun = 'bun'
}

class PackageManagerUtils {
  readonly name: PackageManager;
  readonly version: string;
  
  install(packageName: string, options?: InstallOptions): Promise<void>;
  installAll(options?: InstallOptions): Promise<void>;
  installTemp(packageName: string): Promise<string>;
}

Package Management

Schematics System

Integration with Angular Schematics for code generation and project modification.

abstract class SchematicsCommandModule extends CommandModule {
  protected readonly defaultCollectionName: string;
  
  protected runSchematic(options: {
    collection: string;
    schematic: string;
    options: any;
    dryRun?: boolean;
  }): Promise<void>;
}

Schematics Integration

Build System Integration

Architect-based build system for running build, test, and other targets.

abstract class ArchitectBaseCommandModule extends CommandModule {
  protected runSingleTarget(
    target: string, 
    options: any
  ): Promise<number>;
  
  protected getArchitectHost(): ArchitectHost;
  protected getArchitect(): Architect;
}

Build System Integration

Types

Core type definitions used throughout the Angular CLI system.

interface CliOptions {
  packageManager?: PackageManager;
  defaultCollection?: string;
  analytics?: boolean;
  cache?: {
    enabled?: boolean;
    path?: string;
  };
}

interface ProjectDefinition {
  root: string;
  projectType: 'application' | 'library';
  prefix?: string;
  architect?: Record<string, TargetDefinition>;
}

interface TargetDefinition {
  builder: string;
  options?: any;
  configurations?: Record<string, any>;
}

interface InstallOptions {
  save?: boolean;
  saveDev?: boolean;
  global?: boolean;
}
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@angular/cli@20.2.x
Publish Source
CLI
Badge
tessl/npm-angular--cli badge