Deliver web apps with confidence 🚀
Find a file
Andrew Scott 6fb39d9b62 feat(language-server): Support client-side file watching via onDidChangeWatchedFiles
This implements `onDidChangedWatchedFiles` in the language server, which
allows the client to communicate changes to files rather than having the
server create system file/directory watchers.

This option is enabled in the extension via the
`angular.server.useClientSideFileWatcher` setting.
When enabled, the extension registers a FileSystemWatcher for .ts, .html, and package.json files and forwards events to the server. The server completely disables its internal native file watchers (via a new 'ServerHost' implementation that stubs watchFile/watchDirectory).

This is significantly more performant and reliable than native watching for several reasons:
- Deduplication: VS Code already watches the workspace. Piggybacking on these events prevents the server from duplicating thousands of file watchers.
- OS Limits: Since the server opens zero watcher handles, it is impossible to hit OS limits (ENOSPC), no matter how large the repo is.
- Optimization: VS Code's watcher uses highly optimized native implementations (like Parcel Watcher in Rust/C++) which handle recursive directory watching far better than Node.js's 'fs.watch'.
- Debouncing: The client aggregates extremely frequent file events (e.g., during 'git checkout'), reducing the flood of processing requests to the server.

This option was tested in one very large internal project and observed
~10-50x improvement of initialization times.

fixes #66543
2026-01-23 19:52:37 +00:00
.devcontainer build: update dev container configuration 2026-01-12 13:39:29 -08:00
.gemini ci: add gemini code assist config (#62560) 2025-07-09 12:42:45 -07:00
.github build: update cross-repo angular dependencies 2026-01-21 12:44:18 -08:00
.husky build: use pnpm as the package manager instead of yarn (#62924) 2025-07-31 22:06:27 +00:00
.ng-dev build: begin requring usage of release mode for releases 2026-01-12 13:36:19 -08:00
.vscode build: use @angular/language-service from source (#64306) 2025-10-09 10:00:31 -07:00
adev docs: update signal form tutorials to use FormField 2026-01-23 01:02:17 +00:00
contributing-docs build: update dev container configuration 2026-01-12 13:39:29 -08:00
dev-app build: update cross-repo angular dependencies 2026-01-08 13:26:26 -08:00
devtools refactor(devtools): use object-tree-explorer in signal-value-tree 2026-01-20 10:16:54 -08:00
goldens feat(forms): introduce parse errors in signal forms 2026-01-22 22:19:10 +00:00
integration build: update all non-major dependencies 2026-01-22 22:10:16 +00:00
modules build: update all non-major dependencies 2026-01-22 22:10:16 +00:00
packages docs: update bootstrapApplication docs 2026-01-23 19:45:13 +00:00
scripts build: use Node.js built-in TypeScript support for dev-infra scripts 2026-01-02 08:15:40 +01:00
third_party build: drop usage of pkg_web (#62990) 2025-08-05 10:08:47 +02:00
tools build: initial test of TypeScript 6 2026-01-15 13:41:01 -08:00
vscode-ng-language-service feat(language-server): Support client-side file watching via onDidChangeWatchedFiles 2026-01-23 19:52:37 +00:00
.bazelrc build: update to bazel version 8.4.2 2025-12-08 10:21:59 -08:00
.bazelversion build: update dependency bazel to v8.5.1 2026-01-14 07:57:34 -08:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.git-blame-ignore-revs build: add commits to the ignore revs files. 2025-12-16 16:32:49 -08:00
.gitattributes build: cleanup .gitattributes file and remove outdated CRLF attribute (#46513) 2022-06-28 13:38:27 -07:00
.gitignore build: update dev container configuration 2026-01-12 13:39:29 -08:00
.gitmessage docs: move commit message guidelies to a separate file (#58786) 2025-03-04 19:35:54 +00:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.npmrc build: ensure optimization rule can use compiler-cli from HEAD (#61810) 2025-06-02 09:52:57 -04:00
.nvmrc build: update dependency node to v22.22.0 2026-01-14 07:57:59 -08:00
.pnpmfile.cjs build: improve dependency management for local packages 2025-11-12 09:34:27 -08:00
.prettierignore feat(compiler): Add support for multiple swich cases matching 2026-01-07 09:23:50 -05:00
.prettierrc ci: enable embeddedLanguageFormatting for prettier 2025-12-15 09:54:48 -08:00
.pullapprove.yml ci: add Charles & Doug as optional adev reviewers 2026-01-02 08:14:37 +01:00
browser-providers.conf.d.ts build: share Saucelabs browsers between karma test targets using background Saucelabs daemon and custom karma launcher (#49200) 2023-05-15 09:21:46 -07:00
browser-providers.conf.js refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
BUILD.bazel build: use snapshot builds for dependencies in @angular/language-server (#64334) 2025-10-10 06:48:51 -07:00
CHANGELOG.md release: cut the v21.2.0-next.0 release 2026-01-22 00:44:04 +00:00
CHANGELOG_ARCHIVE.md build: format md files 2025-11-06 10:03:05 -08:00
CODE_OF_CONDUCT.md build: format md files 2025-11-06 10:03:05 -08:00
context7.json docs: add context7.json config (#63000) 2025-08-05 18:15:38 +02:00
CONTRIBUTING.md docs: Update contributing guidelines 2025-12-08 09:06:25 -08:00
gulpfile.js refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
karma-js.conf.js build: update to bazel 7.6.0 (#63096) 2025-08-14 13:01:30 +02:00
LICENSE docs: update copyright year 2026-01-07 12:28:34 -05:00
MODULE.bazel build: update dependency aspect_rules_js to v2.9.2 2026-01-22 23:31:27 +00:00
MODULE.bazel.lock build: update dependency aspect_rules_js to v2.9.2 2026-01-22 23:31:27 +00:00
package.json build: update all non-major dependencies 2026-01-22 22:10:16 +00:00
packages.bzl build: remove unneeded language-service dependency (#64306) 2025-10-09 10:00:31 -07:00
pnpm-lock.yaml build: update all non-major dependencies 2026-01-22 22:10:16 +00:00
pnpm-workspace.yaml refactor(vscode-extension): Remove pre-19 integration project 2026-01-05 17:01:49 -05:00
README.md docs: fix lazy loading documentation reference 2025-12-08 08:47:40 -08:00
renovate.json ci: update Renovate configuration to replace Bazel module dependency command 2026-01-13 08:28:43 -08:00
REPO.bazel build: migrate Bazel ignore rules from .bazelignore to REPO.bazel 2025-12-17 10:14:00 -08:00
SECURITY.md docs: update security guide link to adev (#56469) 2024-06-17 08:54:08 -07:00
tsconfig-tslint.json build: update tslint configuration (#61146) 2025-05-06 13:35:24 -07:00
tslint.json build: add a noDuplicateEnumValue rule (#63483) 2025-09-10 22:16:10 +00:00

Angular - The modern web developer's platform

angular-logo
Angular is a development platform for building mobile and desktop web applications
using TypeScript/JavaScript and other languages.

angular.dev

Contributing Guidelines · Submit an Issue · Blog

Angular on npm


Documentation

Get started with Angular, learn the fundamentals and explore advanced topics on our documentation website.

Advanced

Local Development

To contribute to the Angular Docs, check out the Angular.dev README

Development Setup

Prerequisites

Setting Up a Project

Install the Angular CLI globally:

npm install -g @angular/cli

Create workspace:

ng new [PROJECT NAME]

Run the application:

cd [PROJECT NAME]
ng serve

Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions.

Quickstart

Get started in 5 minutes.

Ecosystem

angular ecosystem logos

Changelog

Learn about the latest improvements.

Upgrading

Check out our upgrade guide to find out the best way to upgrade your project.

Contributing

Contributing Guidelines

Read through our contributing guidelines to learn about our submission process, coding rules, and more.

Want to Help?

Want to report a bug, contribute some code, or improve the documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

Code of Conduct

Help us keep Angular open and inclusive. Please read and follow our Code of Conduct.

Community

Join the conversation and help the community.

Love Angular badge

Love Angular? Give our repo a star ⬆️.