Skip to content

Angular Development Environment

Code name: angular-dev

Angular-specific development environment with VS Code extensions and CLI autocompletion.

Also included automatically: repairs broken host paths in your git config and restores your SSH commit-signing key on every attach, on both local and cloud containers, with nothing to set up on your end — see helpers4-common for how it works.

Use this feature for an Angular project where you want the curated extension set and CLI autocompletion set up without picking them one by one. For general TypeScript/JavaScript tooling that isn’t Angular-specific, see typescript-dev instead.

Alternatives:

  • Angular’s own ng completion sets up autocompletion too, but you’d need to source it into your shell profile yourself on every container — this feature wires it into both zsh and bash automatically.
  • Hand-picking the 7 extensions below yourself works fine for a one-off project, but drifts across projects and needs to be redone whenever you set up a new devcontainer.
  • VS Code extensions: Essential Angular development extensions pre-installed
  • CLI autocompletion: Tab completion for Angular CLI commands in zsh and bash
  • Optional CLI installation: Install Angular CLI globally if needed

Add this feature to your devcontainer.json:

{
    "features": {
        "ghcr.io/helpers4/devcontainer/angular-dev:1": {}
    }
}

For the best development experience, add port forwarding for the Angular dev server:

{
    "features": {
        "ghcr.io/helpers4/devcontainer/angular-dev:1": {}
    },
    "forwardPorts": [4200],
    "portsAttributes": {
        "4200": {
            "label": "Angular Dev Server",
            "onAutoForward": "notify"
        }
    }
}

If you want to install Angular CLI as part of this feature:

{
    "features": {
        "ghcr.io/helpers4/devcontainer/angular-dev:1": {
            "installCli": true
        }
    }
}
{
    "features": {
        "ghcr.io/devcontainers/features/node:1": {
            "version": "20"
        },
        "ghcr.io/helpers4/devcontainer/angular-dev:1": {
            "installCli": true
        }
    },
    "forwardPorts": [4200],
    "portsAttributes": {
        "4200": {
            "label": "Angular Dev Server",
            "onAutoForward": "notify"
        }
    }
}
OptionTypeDefaultDescription
installClibooleanfalseInstall Angular CLI globally
ExtensionDescription
angular.ng-templateAngular Language Service
johnpapa.angular2Angular Snippets
infinity1207.angular2-switcherSwitch between component files
alexiv.vscode-angular2-filesGenerate Angular files
obenjiro.arrrAngular Refactoring Tools
john-crowson.angular-file-changerQuick file navigation
cyrilletuzi.angular-schematicsAngular Schematics integration

The Angular dev server runs on port 4200 by default. Since DevContainer features cannot configure port forwarding directly, you need to add it to your devcontainer.json:

{
    "forwardPorts": [4200],
    "portsAttributes": {
        "4200": {
            "label": "Angular Dev Server",
            "onAutoForward": "notify"
        }
    }
}
PortPurposeRecommended Action
4200Angular Dev ServerAdd to forwardPorts in devcontainer.json

Angular CLI autocompletion is automatically configured for both zsh and bash shells. After the container starts, you can use tab completion for:

  • ng <tab> - Show available commands
  • ng generate <tab> - Show schematic types
  • ng add <tab> - Show available packages
ng new my-app --routing --style=scss
cd my-app
ng serve
ng generate component features/user-profile
ng generate service core/api
ng generate module shared --routing
ng build --configuration production

If ng command is not available:

  1. Ensure Node.js feature is installed before this feature
  2. Set installCli: true in the feature options
  3. Or install manually: npm install -g @angular/cli
  • Start a new terminal session after container creation
  • Ensure you’re using zsh or bash shell
  • Check that Angular CLI is installed: which ng
  • Ensure forwardPorts: [4200] is in your devcontainer.json
  • Check if another process is using port 4200
  • Verify the dev server is running: ng serve
  • Check VS Code’s Ports panel for forwarding status
  • v1.2.3: Documentation only, no functional change — added a “When to use this” section with alternatives, matching the equivalent sections other features in this catalog already had.
  • v1.2.2: Documentation only, no functional change — the previous wording sweep made the JSON description field far too long, shifting focus away from the feature itself onto the self-heal side benefit. Shortened to 5 words and kept generic (no implementation detail like “git config”), matching the original’s brevity and level of detail.
  • v1.2.1: Documentation only, no functional change — the self-heal callout above (and the JSON description field) led with internal jargon (“helpers4’s self-heal”) instead of the actual benefit; reworded to lead with what it does, with the full mechanism staying in helpers4-common’s own README.
  • v1.2.0: Documentation only, no functional change — mentions that helpers4-common’s automatic git-config self-heal (see above) now comes along with this feature.
  • v1.1.0: Switched from an inline copy of helpers4-common’s bootstrap (user detection, apt helpers) to a direct dependsOn on the helpers4-common feature — no behavior change, just a single source of truth for that logic instead of a copy every feature had to keep in sync.