Angular Build Architect builder for ng-packagr library packaging (deprecated)
89
{
"context": "This criteria evaluates how well the engineer uses @angular-devkit/build-ng-packagr to orchestrate library build processes, including executing builds, managing caching, and handling configuration options.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Execute builder function",
"description": "Uses the execute() or executeNgPackagrBuilder() function from @angular-devkit/build-ng-packagr to run library builds",
"max_score": 20
},
{
"name": "NgPackagrBuilderOptions usage",
"description": "Correctly structures NgPackagrBuilderOptions with project, tsConfig, watch, and poll properties as needed",
"max_score": 15
},
{
"name": "BuilderContext integration",
"description": "Uses BuilderContext.workspaceRoot for path resolution and accesses project metadata through context methods",
"max_score": 15
},
{
"name": "Dynamic ng-packagr import",
"description": "Dynamically imports ng-packagr package using import() or require() and handles MODULE_NOT_FOUND errors appropriately",
"max_score": 15
},
{
"name": "Cache configuration",
"description": "Sets up NgPackagrOptions with cacheEnabled, cacheDirectory, and environment-aware cache strategies (local/ci/all)",
"max_score": 15
},
{
"name": "Observable return type",
"description": "Returns Observable<BuilderOutput> from builder execution and uses RxJS operators (switchMap, map, catchError) for build flow control",
"max_score": 10
},
{
"name": "Watch mode handling",
"description": "Conditionally calls packager.watch() vs packager.build() based on options.watch flag",
"max_score": 5
},
{
"name": "TypeScript config override",
"description": "Uses packager.withTsConfig() method when options.tsConfig is provided to override TypeScript settings",
"max_score": 5
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-angular-devkit--build-ng-packagrdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10