sidebar hamburger menu

Angular

Endless Lifecycle Support (ELS) for Angular from TuxCare provides security fixes for Angular versions that have reached their end of life. This allows you to continue running Angular applications without vulnerability concerns, even after official support has ended.

Supported Angular Versions

Angular versions from 4 to 19 are supported.

Installation

Docker compatible

Prerequisites

  • npm version 9.6.3 or later
    Check current version: npm --version
    Update npm: npm install -g npm@latest
  • TuxCare registry token — contact sales@tuxcare.com
  • To browse available artifacts, visit TuxCare Nexus and click Sign in in the top right corner. You may need to refresh the page after logging in.
  1. Create or update the .npmrc file

    Navigate to the root directory of your Angular project and create a .npmrc file or update it if it already exists.

    Example:

    my-angular-project/
    ├── src/
    ├── angular.json
    ├── package.json
    ├── .npmrc         ⚠️ ← Create it here
    └── tsconfig.json
    
  2. Configure the npm registry

    Use an editor of your choice (e.g., VS Code) to add the following registry address lines to the .npmrc file:

    registry=https://registry.npmjs.org/
    @els-angular:registry=https://nexus.repo.tuxcare.com/repository/els_angular/
    //nexus.repo.tuxcare.com/repository/els_angular/:_auth=${TOKEN}
    

    Replace ${TOKEN} with the token you received from sales@tuxcare.com.

  3. Update dependencies

    Manually update your package.json file by replacing Angular dependencies with TuxCare-maintained packages.

    Choose Angular version:

    Use "SSR ON" if your project is configured with Server-Side Rendering, otherwise use "SSR OFF".

    To check whether your Angular project is configured with Server-Side Rendering, look for @angular/ssr listed in your original package.json file before replacing dependencies. If you see @angular/ssr listed, SSR is ON, otherwise SSR is OFF.

    "dependencies": {
      "@angular/common": "npm:@els-angular/angular-common@>=19.2.21-tuxcare.1",
      "@angular/compiler": "npm:@els-angular/angular-compiler@>=19.2.21-tuxcare.1",
      "@angular/core": "npm:@els-angular/angular-core@>=19.2.21-tuxcare.1",
      "@angular/forms": "npm:@els-angular/angular-forms@>=19.2.21-tuxcare.1",
      "@angular/platform-browser": "npm:@els-angular/angular-platform-browser@>=19.2.21-tuxcare.1",
      "@angular/platform-browser-dynamic": "npm:@els-angular/angular-platform-browser-dynamic@>=19.2.21-tuxcare.1",
      "@angular/platform-server": "npm:@els-angular/angular-platform-server@>=19.2.21-tuxcare.1",
      "@angular/router": "npm:@els-angular/angular-router@>=19.2.21-tuxcare.1",
      "@angular/ssr": "npm:@els-angular/angular-ssr@>=19.2.25-tuxcare.1"
    },
    "devDependencies": {
      "@angular-devkit/build-angular": "19.2.21",
      "@angular/cli": "npm:@els-angular/angular-cli@>=19.2.25-tuxcare.1",
      "@angular/compiler-cli": "npm:@els-angular/angular-compiler-cli@>=19.2.21-tuxcare.1"
    },
    "overrides": {
      "@angular/common": "npm:@els-angular/angular-common@>=19.2.21-tuxcare.1",
      "@angular/compiler": "npm:@els-angular/angular-compiler@>=19.2.21-tuxcare.1",
      "@angular/core": "npm:@els-angular/angular-core@>=19.2.21-tuxcare.1",
      "@angular/forms": "npm:@els-angular/angular-forms@>=19.2.21-tuxcare.1",
      "@angular/platform-browser": "npm:@els-angular/angular-platform-browser@>=19.2.21-tuxcare.1",
      "@angular/platform-browser-dynamic": "npm:@els-angular/angular-platform-browser-dynamic@>=19.2.21-tuxcare.1",
      "@angular/platform-server": "npm:@els-angular/angular-platform-server@>=19.2.21-tuxcare.1",
      "@angular/router": "npm:@els-angular/angular-router@>=19.2.21-tuxcare.1",
      "@angular/compiler-cli": "npm:@els-angular/angular-compiler-cli@>=19.2.21-tuxcare.1",
      "@angular/localize": "npm:@els-angular/angular-localize@>=19.2.21-tuxcare.1",
      "@angular/service-worker": "npm:@els-angular/angular-service-worker@>=19.2.21-tuxcare.1",
      "@angular/ssr": "npm:@els-angular/angular-ssr@>=19.2.25-tuxcare.1",
      "@angular/cli": "npm:@els-angular/angular-cli@>=19.2.25-tuxcare.1"
    }

    If you use any of the following non-default Angular modules, update their versions as shown below:

    • "@angular/animations": "npm:@els-angular/angular-animations@>=19.2.21-tuxcare.1",
    • "@angular/language-service": "npm:@els-angular/angular-language-service@>=19.2.21-tuxcare.1",
    • "@angular/upgrade": "npm:@els-angular/angular-upgrade@>=19.2.21-tuxcare.1",
    • "@angular/elements": "npm:@els-angular/angular-elements@>=19.2.21-tuxcare.1",
    • "@angular/service-worker": "npm:@els-angular/angular-service-worker@>=19.2.21-tuxcare.1",

    After adding these aliases, make sure the same modules are also listed in the overrides section, just like the default ones.

  4. Refresh the project dependencies

    Remove node_modules, package-lock.json, and clear the npm cache:

    rm -rf node_modules package-lock.json && npm cache clean --force
    

    Install dependencies:

    npm install
    

    The token for the TuxCare repository is automatically picked up from your .npmrc file.

  5. Verify the setup

    Use npm to list the project's dependencies and confirm TuxCare packages are resolved correctly:

    npm list
    

    After reviewing the dependencies, run your application to ensure everything works correctly. The npm tool should be able to identify and resolve dependencies from the TuxCare ELS for Angular repository.

What's Next?

  • CVE Tracker — Track vulnerability fixes and updates
  • Available fixes — Patched versions and changelogs
  • Supported components — Full list of product parts covered by ELS
  • VEX feed — Vulnerability Exploitability eXchange feed
  • SBOM — Software Bill of Materials (Nexus, credentials required)
  • Package updates — Update an installed package to a newer TuxCare release