JeB*_*JeB 11 angular-cli angular angular-builder angular-devkit
Angular CLI 6引入了一个新的构建器概念(又名Architect Targets).
有一对夫妇的预建的建设者随之而来@angular-devkit/build_angular,但遗憾的是没有文件说明如何创建自己的构建.
如何创建自己的构建器(例如,修改底层webpack配置)?
JeB*_*JeB 15
完整的文章可以在这里找到.
为简单起见,我假设新构建器在Typescript中实现,但它也可以在纯JavaScript中实现.
builders指向builders.json的条目.在my-cool-builder/index.ts中实现构建器.构建器必须实现以下接口:
export interface Builder<OptionsT> {
run(builderConfig: BuilderConfiguration<Partial<OptionsT>>): Observable<BuildEvent>;
}
Run Code Online (Sandbox Code Playgroud)
虽然BuildEvent是这样的:
export interface BuildEvent {
success: boolean;
}
Run Code Online (Sandbox Code Playgroud)
BuilderConfiguration 这是:
export interface BuilderConfiguration<OptionsT = {}> {
root: Path;
sourceRoot?: Path;
projectType: string;
builder: string;
options: OptionsT;
}
Run Code Online (Sandbox Code Playgroud)
并OptionsT在接口您对您的建设者选项定义schema.d.ts
您可以使用browser架构师目标作为参考.
实现后,将构建器添加到builders.json:
{
"$schema": "@angular-devkit/architect/src/builders-schema.json",
"builders": {
"cool-builder": {
"class": "./my-cool-builder",
"schema": "./my-cool-builder/schema.json",
"description": "My cool builder that builds things up"
}
}
}
Run Code Online (Sandbox Code Playgroud)在你的angular.json中:
"architect": {
...
"build": {
"builder": "./custom-builders:cool-builder"
"options": {
your options here
}
Run Code Online (Sandbox Code Playgroud)
有关完整示例,请查看此库:https://github.com/meltedspark/angular-builders
| 归档时间: |
|
| 查看次数: |
3507 次 |
| 最近记录: |