Angular CLI 6では、ビルダー(別名Architect Targets)の新しい概念が導入されました。@angular-devkit/build_angular
に付属するいくつかの ビルド済みビルダー がありますが、残念ながらありません独自のビルダーの作成方法を説明するドキュメント。
独自のビルダーを作成するにはどうすればよいですか(たとえば、基になるWebpack構成を変更するために)?
完全な記事は here にあります。
簡単にするために、新しいビルダーはTypeScriptで実装されていると想定していますが、純粋なJavaScriptでも実装できます。
builders
エントリが含まれますbuilders.jsonmy-cool-builder/index.tsにビルダーを実装します。ビルダーは、次のインターフェースを実装する必要があります。
export interface Builder<OptionsT> {
run(builderConfig: BuilderConfiguration<Partial<OptionsT>>): Observable<BuildEvent>;
}
BuildEvent
はこれです:
export interface BuildEvent {
success: boolean;
}
BuilderConfiguration
は次のとおりです:
export interface BuilderConfiguration<OptionsT = {}> {
root: Path;
sourceRoot?: Path;
projectType: string;
builder: string;
options: OptionsT;
}
そして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"
}
}
}
angular.json:
"architect": {
...
"build": {
"builder": "./custom-builders:cool-builder"
"options": {
your options here
}
完全な例については、このライブラリをチェックしてください: https://github.com/meltedspark/angular-builders
私はそれをテストしなかったし、私はよくわかりませんが、この概念は解決策かもしれません。
architect.build.builder
は、ビルドプロセスを実行するために、いくつかのAngular回路図を使用します。実装する追加のロジックを持つ通常のビルド回路図を使用/継承する独自の回路図を作成できます。
Angular 8以降)を使用する人のために、ビルダーAPIが正式にサポートされ、文書化されました: https://angular.io/guide/cli-builder
以前のバージョンと比較して多くの変更があるため、文書化されていないArchitect APIを使用している場合、Angular 7から8への移行は複雑になる可能性があります。
ここに、始めるための素晴らしい記事があります: https://blog.angular.io/introducing-cli-builders-d012d4489f1b