Configuration options for customizing Angular compilation behavior, including Angular-specific compiler options and CLI options for controlling the build process.
Main interface for Angular-specific compilation options that extend TypeScript's compiler options.
/**
* Angular compiler options extending TypeScript compiler options
*/
interface AngularCompilerOptions extends ts.CompilerOptions {
/** Absolute path to directory where generated files are written */
genDir?: string;
/** Path to directory containing tsconfig.json */
basePath?: string;
/** Don't produce .metadata.json files (incompatible with --out bundled emit) */
skipMetadataEmit?: boolean;
/** Produce error if metadata would cause runtime errors when used */
strictMetadataEmit?: boolean;
/** Don't produce .ngfactory.ts or .ngstyle.ts files */
skipTemplateCodegen?: boolean;
/** Output file name for flat module index */
flatModuleOutFile?: string;
/** Module ID for flat module index */
flatModuleId?: string;
/** Generate code for libraries, not just applications */
generateCodeForLibraries?: boolean;
/** Generate Closure Compiler-friendly code */
annotateForClosureCompiler?: boolean;
/** How to emit decorator annotations ('decorators' | 'static fields') */
annotationsAs?: 'decorators' | 'static fields';
/** Enable compilation tracing */
trace?: boolean;
/** Enable debug mode (deprecated) */
debug?: boolean;
/** Enable legacy template syntax */
enableLegacyTemplate?: boolean;
/** Enable summaries for JIT compilation */
enableSummariesForJit?: boolean;
/** Always compile generated code even if unchanged */
alwaysCompileGeneratedCode?: boolean;
/** Preserve whitespace in templates */
preserveWhitespaces?: boolean;
}Usage Example:
import { AngularCompilerOptions } from "@angular/tsc-wrapped";
const angularOptions: AngularCompilerOptions = {
// Standard TypeScript options
target: ts.ScriptTarget.ES2015,
module: ts.ModuleKind.CommonJS,
// Angular-specific options
genDir: "./generated",
basePath: "./src",
skipMetadataEmit: false,
strictMetadataEmit: true,
flatModuleOutFile: "index.js",
flatModuleId: "my-library",
generateCodeForLibraries: true,
annotateForClosureCompiler: false,
annotationsAs: "decorators",
preserveWhitespaces: false
};Base class for CLI options used throughout the compilation process.
/**
* Base CLI options for compilation
*/
class CliOptions {
/** Base path for resolving relative paths */
basePath: string;
/**
* Creates CLI options
* @param config - Configuration object with basePath
*/
constructor(config: {basePath: string});
}Usage Example:
import { CliOptions } from "@angular/tsc-wrapped";
const cliOptions = new CliOptions({
basePath: "./src"
});CLI options specific to Angular compiler operations.
/**
* CLI options for Angular compiler
*/
class NgcCliOptions extends CliOptions {
/** Internationalization format */
i18nFormat: string;
/** Internationalization file path */
i18nFile: string;
/** Locale for internationalization */
locale: string;
/** Behavior for missing translations */
missingTranslation: string;
/**
* Creates Angular compiler CLI options
* @param config - Configuration object
*/
constructor(config: {
basePath: string;
i18nFormat: string;
i18nFile: string;
locale: string;
missingTranslation: string;
});
}Usage Example:
import { NgcCliOptions } from "@angular/tsc-wrapped";
const ngcOptions = new NgcCliOptions({
basePath: "./src",
i18nFormat: "xlf",
i18nFile: "./locale/messages.xlf",
locale: "en-US",
missingTranslation: "warning"
});CLI options for internationalization extraction operations.
/**
* CLI options for i18n extraction
*/
class I18nExtractionCliOptions extends CliOptions {
/** Format for extracted i18n messages */
i18nFormat: string | null;
/** Locale for extraction */
locale: string | null;
/** Output file for extracted messages */
outFile: string | null;
/**
* Creates i18n extraction CLI options
* @param config - Configuration object
*/
constructor(config: {
i18nFormat?: string;
locale?: string;
outFile?: string;
});
}Usage Example:
import { I18nExtractionCliOptions } from "@angular/tsc-wrapped";
const i18nOptions = new I18nExtractionCliOptions({
i18nFormat: "xlf2",
locale: "en-US",
outFile: "./locale/messages.xlf2"
});import { AngularCompilerOptions, CliOptions } from "@angular/tsc-wrapped";
const developmentOptions: AngularCompilerOptions = {
target: ts.ScriptTarget.ES2015,
module: ts.ModuleKind.CommonJS,
basePath: "./src",
genDir: "./generated",
skipMetadataEmit: false,
strictMetadataEmit: false, // More lenient for development
trace: true, // Enable tracing for debugging
preserveWhitespaces: true // Preserve whitespace for easier debugging
};
const cliOptions = new CliOptions({
basePath: "./src"
});import { AngularCompilerOptions } from "@angular/tsc-wrapped";
const libraryOptions: AngularCompilerOptions = {
target: ts.ScriptTarget.ES2015,
module: ts.ModuleKind.ES2015,
basePath: "./src",
genDir: "./dist",
skipMetadataEmit: false,
strictMetadataEmit: true, // Strict for production
generateCodeForLibraries: true,
flatModuleOutFile: "index.js",
flatModuleId: "my-library",
annotateForClosureCompiler: true, // Enable for better optimization
preserveWhitespaces: false // Minimize output
};