Skip to content

@angular/compiler bundled with esbuild to cjs to be used in schematics

License

Notifications You must be signed in to change notification settings

manbearwiz/angular-compiler-bundled

Repository files navigation

angular-compiler-bundled

Introduction

This package bundles the @angular/compiler package and its dependencies into a single CommonJS (cjs) format file using esbuild, so you can import it via require in environments that do not support ES modules, such as compiled Angular Schematics.

Installation

You can install angular-compiler-bundled via npm:

npm install angular-compiler-bundled

Usage

After installation, you can import the bundled Angular compiler module in your code:

import { parseTemplate } from "angular-compiler-bundled";

const ast = parseTemplate(template.content, template.filePath, {
  preserveWhitespaces: true,
  preserveLineEndings: true,
  leadingTriviaChars: [],
});

This package also includes some utility functions from the angular/components repo that are not exported by the original @angular/compiler package:

import {
  visitElements,
  replaceStartTag,
  replaceEndTag,
  updateAttribute
} from 'angular-compiler-bundled';

Disclaimer

This package is not officially maintained by the Angular team. I'm assuming they don't provide CommonJS support in the @angular/compiler package because that api is not considered public and is subject to change without notice.

I would love to move away from this package as soon as the Angular team provides better utilities for schematics development.