Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Update Angular.gitignore #4756

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
jannoguer wants to merge 1 commit into github:main
base: main
Choose a base branch
Loading
from jannoguer:main
Open

Update Angular.gitignore #4756

jannoguer wants to merge 1 commit into github:main from jannoguer:main

Conversation

@jannoguer
Copy link

@jannoguer jannoguer commented Nov 13, 2025
edited
Loading

Reasons for making this change

This update modernizes the Angular .gitignore template to align with the latest Angular CLI defaults and community best practices. It removes obsolete patterns (like .angular-cli.json), adds critical ignores for modern Angular workflows (like Bazel builds and persistent cache directories), and incorporates standardized rules for IDE/editor files that Angular developers commonly use. Crucially, it stops ignoring lockfiles (package-lock.json/yarn.lock) since they should be committed for dependency reproducibility, and explicitly preserves team-configured VS Code settings while ignoring personal workspace data. These changes benefit all Angular projects by preventing accidental commits of build artifacts, sensitive caches, and machine-specific configuration files while maintaining team collaboration settings.

Links to documentation supporting these rule changes

  1. Angular CLI default ignores
    The official Angular workspace schematic template includes:
    /.angular/cache, /dist, /out-tsc, /coverage, /bazel-out, and lockfile handling guidance:
    https://github.com/angular/angular-cli/blob/main/packages/schematics/angular/workspace/files/__dot__gitignore.template

  2. Bazel build artifacts
    Angular's Bazel builder documentation specifies ignoring /bazel-* directories:
    https://bazel.build/remote/output-directories

  3. VS Code configuration guidance
    While not officially mandated by Angular, it's considered standard practice to commit essential VS Code configuration files (tasks.json, launch.json, extensions.json) to ensure consistent editor behavior across development teams. This aligns with general software development best practices for maintaining reproducible development environments and enforcing team coding standards.

  4. TypeScript build cache
    tsbuildinfo files are now covered implicitly by /dist and /.angular/cache per TypeScript's incremental build docs:
    https://www.typescriptlang.org/tsconfig#tsBuildInfoFile

  5. Environment files
    .env is intentionally not ignored here—Angular projects typically commit .env.example but ignore .env via project-specific rules (per the 12-factor app methodology). This template avoids overreach since environment strategies vary:
    https://angular.io/guide/build#configure-environment-specific-defaults

Merge and Approval Steps

  • Confirm that you've read the contribution guidelines and ensured your PR aligns
  • Ensure CI is passing
  • Get a review and Approval from one of the maintainers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /