The Angular Command Line Interface (CLI) is an indispensable tool for any developer working with the Angular framework. It streamlines the entire development workflow, from project creation and scaffolding to building, testing, and deploying applications. Mastering the Angular CLI is a crucial step towards efficient and productive Angular development. This guide will walk you through the process of installing the Angular CLI, covering prerequisites, installation methods, and essential verification steps.
Prerequisites for Angular CLI Installation
Before embarking on the Angular CLI installation journey, it’s imperative to ensure your development environment is adequately prepared. The primary prerequisite for Angular CLI is Node.js, the JavaScript runtime environment. Angular, and by extension its CLI, are built on Node.js. Therefore, having Node.js installed is non-negotiable.

Node.js Installation
Node.js can be downloaded from its official website, nodejs.org. It’s recommended to download the Long Term Support (LTS) version, which offers greater stability and is generally preferred for production environments. During the installation process, ensure that the npm (Node Package Manager) package manager is also installed. npm is bundled with Node.js and is essential for managing Angular and its dependencies.
Verifying Node.js and npm Installation
Once Node.js is installed, it’s good practice to verify the installation. Open your terminal or command prompt and execute the following commands:
node -v
This command should output the installed Node.js version. Following that, check the npm version:
npm -v
This command will display the installed npm version. If either of these commands returns an error, it indicates that Node.js and npm are not correctly installed or not accessible in your system’s PATH. In such cases, revisit the Node.js installation process and ensure that Node.js is added to your system’s environment variables.
Package Manager Considerations
While npm is the default package manager for Node.js and Angular, Yarn is another popular alternative that can be used. If you prefer Yarn, you will need to install it separately and then use Yarn commands instead of npm commands for package management. For the purposes of this guide, we will primarily focus on npm.
Operating System Compatibility
The Angular CLI is compatible with Windows, macOS, and Linux operating systems. The installation process is largely consistent across these platforms, with minor variations in terminal commands or path configurations.
Installing the Angular CLI
With Node.js and npm successfully installed, you are ready to install the Angular CLI. The Angular CLI is typically installed globally on your system, making its commands accessible from any directory within your terminal.
Global Installation via npm
To install the Angular CLI globally, open your terminal or command prompt and run the following npm command:
npm install -g @angular/cli
Let’s break down this command:
npm install: This is the core npm command for installing packages.-g: This flag signifies a global installation. This means the Angular CLI will be installed in a central location on your system, allowing you to usengcommands from anywhere.@angular/cli: This is the official package name for the Angular CLI on the npm registry.
This command will download the latest stable version of the Angular CLI and install it on your system. The installation process might take a few moments, depending on your internet connection speed and system performance.
Alternative: Installing a Specific Version
In some scenarios, you might need to install a specific version of the Angular CLI, perhaps for compatibility reasons with an existing project. To do this, you can append the desired version number to the package name. For example, to install version 13:
npm install -g @angular/cli@13
Replace 13 with the specific version you require. It’s generally recommended to use the latest stable version unless there’s a compelling reason to do otherwise.
Potential Permission Issues
On some systems, particularly macOS and Linux, you might encounter permission errors when trying to install packages globally. This typically occurs when npm tries to write to directories that require administrator privileges. If you encounter such errors, you can try prefixing the install command with sudo (on macOS and Linux):
sudo npm install -g @angular/cli
You will be prompted to enter your system’s administrator password. Be cautious when using sudo and ensure you understand the commands you are executing. Alternatively, a more robust solution for managing npm permissions is to configure npm to install global packages in a user-owned directory. This avoids the need for sudo for future global installations. This configuration is beyond the scope of this basic installation guide but is a recommended practice for experienced developers.
Verifying Angular CLI Installation
After the installation command completes, it’s crucial to verify that the Angular CLI has been installed correctly and is accessible.
Checking the Angular CLI Version
The most straightforward way to verify the installation is to check the installed version of the Angular CLI. In your terminal, run:
ng version
This command should output detailed information about your Angular CLI installation, including:
- The Angular CLI version itself.
- The Node.js version used.
- The operating system.
- Information about other Angular packages and their versions (e.g., Angular core, RxJS, TypeScript).
If this command executes successfully and displays the version information, it confirms that the Angular CLI is installed globally and is functioning as expected.
Troubleshooting Common Installation Issues
Despite careful execution, you might occasionally run into issues during installation. Here are a few common problems and their potential solutions:
ng command not found
If you execute ng version or any other ng command and receive an error like “ng is not recognized as an internal or external command, operable program or batch file,” it usually means the Angular CLI’s executable is not in your system’s PATH.
- Solution: Ensure that the global npm installation directory is included in your system’s PATH environment variable. The exact location of this directory can vary, but you can often find it by running
npm config get prefix. If it’s not in your PATH, you’ll need to add it. A restart of your terminal or even your computer might be necessary for the PATH changes to take effect. - Reinstallation: Sometimes, a corrupted installation can cause this. Try uninstalling and reinstalling the Angular CLI:
bash
npm uninstall -g @angular/cli
npm cache clean --force # Optional, but can clear corrupted cache
npm install -g @angular/cli
Network or Proxy Issues
If your network has strict firewall rules or you are behind a proxy server, npm might fail to download the Angular CLI package.
- Solution: Configure npm to use your proxy settings. You can set proxy environment variables or configure npm directly:
bash
npm config set proxy http://your_proxy_address:port
npm config set https-proxy http://your_proxy_address:port
Replaceyour_proxy_addressandportwith your actual proxy details.
Insufficient Disk Space

While less common, running out of disk space during installation can lead to incomplete or failed installations.
- Solution: Ensure you have enough free disk space before starting the installation.
Updating the Angular CLI
The Angular ecosystem evolves rapidly, with new versions of Angular and its CLI released regularly. It’s essential to keep your Angular CLI updated to benefit from the latest features, performance improvements, and bug fixes.
To update the Angular CLI to the latest stable version, simply run the installation command again. npm will detect that the package is already installed and will upgrade it to the newest available version:
npm install -g @angular/cli
If you need to update to a specific version, you can use the version specifier as shown in the installation section.
Getting Started with Angular CLI
Once the Angular CLI is successfully installed and verified, you are ready to embark on your Angular development journey. The CLI provides commands to create new projects, generate components, services, modules, and much more, all designed to accelerate your development process.
Creating a New Angular Project
The first step in any new Angular project is to create it using the CLI. Navigate to the directory where you want to create your project in your terminal and run:
ng new my-angular-app
Replace my-angular-app with your desired project name. The ng new command will:
- Create a new directory for your project.
- Set up the basic project structure and necessary files.
- Install all the required npm packages for your project.
- Potentially prompt you for some configuration choices, such as whether to include routing and which stylesheet format (CSS, SCSS, Less, etc.) you prefer.
After the project is created, you can navigate into the project directory:
cd my-angular-app
And then serve the application locally for development:
ng serve
This command compiles your Angular application and starts a development server. You can then open your web browser and navigate to http://localhost:4200/ to see your application running. The ng serve command also enables live reloading, meaning your application will automatically update in the browser whenever you make changes to your code.
Generating Angular Application Elements
The Angular CLI excels at scaffolding common application elements. This saves you from manually creating files and boilerplate code.
Generating a Component
To generate a new component, use the ng generate component command, or its shorthand ng g component:
ng generate component components/my-new-component
This command will create the necessary files for your new component (e.g., .ts, .html, .css, .spec.ts) within the specified directory. It will also automatically update the nearest Angular module to declare and export your new component.
Generating a Service
Similarly, you can generate services to handle business logic or data fetching:
ng generate service services/data-service
This will create a data-service.ts file and its corresponding test file within the services folder.
Other Generation Commands
The Angular CLI offers a plethora of generation commands for various application elements, including:
ng generate module <module-name>ng generate service <service-name>ng generate pipe <pipe-name>ng generate directive <directive-name>ng generate guard <guard-name>ng generate interface <interface-name>
Each of these commands follows a similar pattern, making it easy to learn and use them.
Building and Testing Angular Applications
Beyond scaffolding and serving, the Angular CLI is essential for building production-ready applications and running tests.
Building for Production
When you’re ready to deploy your application, you’ll use the ng build command:
ng build --configuration production
The ng build command compiles your Angular application into a set of static files (HTML, CSS, JavaScript) that can be served by any web server. The --configuration production flag applies optimizations for production builds, such as minification, tree-shaking, and Ahead-of-Time (AOT) compilation, resulting in smaller bundle sizes and faster load times.
Running Unit Tests
The Angular CLI integrates with popular testing frameworks like Jasmine and Karma. To run your unit tests, use the ng test command:
ng test
This command will compile your application and run all your unit tests, typically opening a browser window to display the test results.
Running End-to-End (E2E) Tests
For end-to-end testing, which simulates user interactions in a browser, you can use:
ng e2e
This command executes your E2E tests using Protractor (or a configured alternative).

Conclusion
The Angular CLI is a powerful and indispensable tool that significantly enhances the Angular development experience. By following the steps outlined in this guide, you can successfully install the Angular CLI and begin leveraging its capabilities to build, test, and deploy your Angular applications efficiently. From project creation and code generation to building and testing, the Angular CLI empowers developers with a streamlined and productive workflow. Continuous learning and exploration of its diverse commands will undoubtedly unlock even greater potential for your Angular projects.
