Webpack plugin that AoT compiles your Angular components and modules.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Core webpack plugin for Angular AOT/JIT compilation with comprehensive configuration options for TypeScript integration and Angular-specific build requirements.
Main webpack plugin class that integrates Angular compilation into the webpack build process.
/**
* Angular webpack plugin for AOT/JIT compilation
* Integrates Angular compiler with webpack build process
*/
class AngularWebpackPlugin {
constructor(options: AngularWebpackPluginOptions);
apply(compiler: Compiler): void;
}Usage Example:
import { AngularWebpackPlugin } from '@ngtools/webpack';
const plugin = new AngularWebpackPlugin({
tsconfig: './tsconfig.json',
jitMode: false,
directTemplateLoading: true,
fileReplacements: {
'./src/environments/environment.ts': './src/environments/environment.prod.ts'
},
substitutions: {
'process.env.NODE_ENV': '"production"'
}
});Configuration interface for the AngularWebpackPlugin with comprehensive options for TypeScript and Angular compilation settings.
/**
* Configuration options for AngularWebpackPlugin
* Controls Angular compilation behavior and TypeScript integration
*/
interface AngularWebpackPluginOptions {
/** Path to the application's TypeScript configuration file */
tsconfig: string;
/** Overrides options in the TypeScript configuration file */
compilerOptions?: CompilerOptions;
/** Allows replacing TypeScript files with other TypeScript files in the build */
fileReplacements: Record<string, string>;
/** String substitutions to apply during compilation */
substitutions: Record<string, string>;
/** Causes plugin to load component templates directly from filesystem */
directTemplateLoading: boolean;
/** Enables emission of class metadata for Angular components */
emitClassMetadata: boolean;
/** Enables emission of NgModule scope information */
emitNgModuleScope: boolean;
/** Enables emission of class debug information */
emitSetClassDebugInfo?: boolean;
/** Enables JIT compilation mode instead of AOT */
jitMode: boolean;
/** File extension for processing inline component styles */
inlineStyleFileExtension?: string;
}string"tsconfig.json"CompilerOptions (optional)undefinedRecord<string, string>{}Example:
fileReplacements: {
'./src/environments/environment.ts': './src/environments/environment.prod.ts',
'./src/config/dev.ts': './src/config/prod.ts'
}Record<string, string>{}Example:
substitutions: {
'process.env.NODE_ENV': '"production"',
'BUILD_VERSION': '"1.2.3"'
}booleantruebooleanbooleanboolean (optional)undefinedbooleanfalsestring (optional)undefinedExample:
inlineStyleFileExtension: 'scss'Global collection of image domains discovered during Angular application compilation.
/**
* Set of image domains discovered during compilation
* Populated automatically by Angular compilation process
*/
const imageDomains: Set<string>;Usage Example:
import { imageDomains } from '@ngtools/webpack';
// After compilation, check discovered domains
console.log('Discovered image domains:', Array.from(imageDomains));Unique symbol used for plugin identification and communication between plugin and loader.
/**
* Unique symbol for Angular webpack plugin identification
* Used for internal communication between plugin and loader
*/
const AngularPluginSymbol: unique symbol;