@angular-devkit/build-angular
Version:
Angular Webpack Build Facade
366 lines (298 loc) • 6.71 kB
TypeScript
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export interface BrowserBuilderSchema {
/**
* List of static application assets.
*/
assets: AssetPattern[];
/**
* The name of the main entry-point file.
*/
main: string;
/**
* The name of the polyfills file.
*/
polyfills?: string;
/**
* The name of the TypeScript configuration file.
*/
tsConfig: string;
/**
* Global scripts to be included in the build.
*/
scripts: ExtraEntryPoint[];
/**
* Global styles to be included in the build.
*/
styles: ExtraEntryPoint[];
/**
* Options to pass to style preprocessors.
*/
stylePreprocessorOptions?: StylePreprocessorOptions;
/**
* Enables optimization of the build output.
*/
optimization: boolean;
/**
* Replace files with other files in the build.
*/
fileReplacements: FileReplacement[];
/**
* Path where output will be placed.
*/
outputPath: string;
/**
* Build using Ahead of Time compilation.
*/
aot: boolean;
/**
* Output sourcemaps.
*/
sourceMap: boolean;
/**
* Resolve vendor packages sourcemaps.
*/
vendorSourceMap?: boolean;
/**
* Output in-file eval sourcemaps.
*/
evalSourceMap: boolean;
/**
* Use a separate bundle containing only vendor libraries.
*/
vendorChunk: boolean;
/**
* Use a separate bundle containing code used across multiple bundles.
*/
commonChunk: boolean;
/**
* Base url for the application being built.
*/
baseHref?: string;
/**
* URL where files will be deployed.
*/
deployUrl?: string;
/**
* Adds more details to output logging.
*/
verbose: boolean;
/**
* Log progress to the console while building.
*/
progress?: boolean;
/**
* Localization file to use for i18n.
*/
i18nFile?: string;
/**
* Format of the localization file specified with --i18n-file.
*/
i18nFormat?: string;
/**
* Locale to use for i18n.
*/
i18nLocale?: string;
/**
* How to handle missing translations for i18n.
*/
i18nMissingTranslation?: string;
/**
* Extract css from global styles onto css files instead of js ones.
*/
extractCss: boolean;
/**
* Run build when files change.
*/
watch: boolean;
/**
* Define the output filename cache-busting hashing mode.
*/
outputHashing: OutputHashing;
/**
* Enable and define the file watching poll time period in milliseconds.
*/
poll?: number;
/**
* Delete the output path before building.
*/
deleteOutputPath: boolean;
/**
* Do not use the real path when resolving modules.
*/
preserveSymlinks: boolean;
/**
* Extract all licenses in a separate file, in the case of production builds only.
*/
extractLicenses: boolean;
/**
* Show circular dependency warnings on builds.
*/
showCircularDependencies: boolean;
/**
* Enables @angular-devkit/build-optimizer optimizations when using the 'aot' option.
*/
buildOptimizer: boolean;
/**
* Use file name for lazy loaded chunks.
*/
namedChunks: boolean;
/**
* Enables the use of subresource integrity validation.
*/
subresourceIntegrity: boolean;
/**
* Generates a service worker config for production builds.
*/
serviceWorker: boolean;
/**
* Path to ngsw-config.json.
*/
ngswConfigPath?: string;
/**
* Flag to prevent building an app shell.
*/
skipAppShell: boolean;
/**
* The name of the index HTML file.
*/
index: string;
/**
* Generates a 'stats.json' file which can be analyzed using tools
* such as: #webpack-bundle-analyzer' or https: //webpack.github.io/analyse.
*/
statsJson: boolean;
/**
* Run the TypeScript type checker in a forked process.
*/
forkTypeChecker: boolean;
/**
* List of additional NgModule files that will be lazy loaded.
* Lazy router modules with be discovered automatically.
*/
lazyModules: string[];
/**
* Budget thresholds to ensure parts of your application stay within boundaries which you set.
*/
budgets: Budget[];
}
export type AssetPattern = string | AssetPatternObject;
export interface AssetPatternObject {
/**
* The pattern to match.
*/
glob: string;
/**
* The input path dir in which to apply 'glob'. Defaults to the project root.
*/
input: string;
/**
* Absolute path within the output.
*/
output: string;
}
export type ExtraEntryPoint = string | ExtraEntryPointObject;
export interface ExtraEntryPointObject {
/**
* The file to include.
*/
input: string;
/**
* The bundle name for this extra entry point.
*/
bundleName?: string;
/**
* If the bundle will be lazy loaded.
*/
lazy: boolean;
}
export declare type FileReplacement = DeprecatedFileReplacment | CurrentFileReplacement;
export interface DeprecatedFileReplacment {
/**
* The file that should be replaced.
*/
src: string;
/**
* The file that should replace.
*/
replaceWith: string;
}
export interface CurrentFileReplacement {
/**
* The file that should be replaced.
*/
replace: string;
/**
* The file that should replace.
*/
with: string;
}
/**
* Define the output filename cache-busting hashing mode.
*/
export enum OutputHashing {
All = 'all',
Bundles = 'bundles',
Media = 'media',
None = 'none',
}
/**
* Options to pass to style preprocessors
*/
export interface StylePreprocessorOptions {
/**
* Paths to include. Paths will be resolved to project root.
*/
includePaths: string[];
}
export interface Budget {
/**
* The type of budget.
*/
type: BudgetType;
/**
* The name of the bundle.
*/
name: string;
/**
* The baseline size for comparison.
*/
baseline: string;
/**
* The maximum threshold for warning relative to the baseline.
*/
maximumWarning: string;
/**
* The maximum threshold for error relative to the baseline.
*/
maximumError: string;
/**
* The minimum threshold for warning relative to the baseline.
*/
minimumWarning: string;
/**
* The minimum threshold for error relative to the baseline.
*/
minimumError: string;
/**
* The threshold for warning relative to the baseline (min & max).
*/
warning: string;
/**
* The threshold for error relative to the baseline (min & max).
*/
error: string;
}
export enum BudgetType {
Initial = 'initial',
All = 'all',
Any = 'any',
AllScript = 'allScript',
AnyScript = 'anyScript',
Bundle = 'bundle',
}