Santosh Yadav
GDE for Angular and Web Technologies
Writer AngularInDepth, Mentor DotNetTricks
twitter.com/SantoshYadavDev
github.com/santoshyadav198613
https://www.linkedin.com/in/yadavsantosh/
santoshyadav.dev
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "src/tsconfig.app.json"
},
{
"project": "src/tsconfig.spec.json"
},
{
"project": "e2e/tsconfig.e2e.json"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
}
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "src/tsconfig.app.json"
},
{
"project": "src/tsconfig.spec.json"
},
{
"project": "e2e/tsconfig.e2e.json"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
}
Overriding Webpack Configuration.
Building and Publishing Angular Libraries.
Using Other Tools for Test like Jest or cypress.io.
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "bulma-app:build"
},
"configurations": {
"production": {
"browserTarget": "bulma-app:build:production"
}
}
}
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "bulma-app:build"
},
"configurations": {
"production": {
"browserTarget": "bulma-app:build:production"
}
}
}
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/bulma-app",
"index": "projects/bulma-app/src/index.html",
"main": "projects/bulma-app/src/main.ts",
"polyfills": "projects/bulma-app/src/polyfills.ts",
"tsConfig": "projects/bulma-app/tsconfig.app.json",
"aot": false,
"assets": [
],
"styles": [
],
"scripts": [
]
},
"configurations": {
"production": {
}
}
}
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/bulma-app",
"index": "projects/bulma-app/src/index.html",
"main": "projects/bulma-app/src/main.ts",
"polyfills": "projects/bulma-app/src/polyfills.ts",
"tsConfig": "projects/bulma-app/tsconfig.app.json",
"aot": false,
"assets": [
],
"styles": [
],
"scripts": [
]
},
"configurations": {
"production": {
}
}
}
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "projects/ngx-bulma/tsconfig.lib.json",
"project": "projects/ngx-bulma/ng-package.json"
}
}
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "projects/ngx-bulma/tsconfig.lib.json",
"project": "projects/ngx-bulma/ng-package.json"
}
}
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "projects/bulma-app/src/test.ts",
"polyfills": "projects/bulma-app/src/polyfills.ts",
"tsConfig": "projects/bulma-app/tsconfig.spec.json",
"karmaConfig": "projects/bulma-app/karma.conf.js",
"assets": [
"projects/bulma-app/src/favicon.ico",
"projects/bulma-app/src/assets"
],
"styles": [
"projects/bulma-app/src/styles.css"
],
"scripts": [
]
}
}
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "projects/bulma-app/src/test.ts",
"polyfills": "projects/bulma-app/src/polyfills.ts",
"tsConfig": "projects/bulma-app/tsconfig.spec.json",
"karmaConfig": "projects/bulma-app/karma.conf.js",
"assets": [
"projects/bulma-app/src/favicon.ico",
"projects/bulma-app/src/assets"
],
"styles": [
"projects/bulma-app/src/styles.css"
],
"scripts": [
]
}
}
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "projects/bulma-app/e2e/protractor.conf.js",
"devServerTarget": "bulma-app:serve"
},
"configurations": {
"production": {
"devServerTarget": "bulma-app:serve:production"
}
}
}
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "projects/bulma-app/e2e/protractor.conf.js",
"devServerTarget": "bulma-app:serve"
},
"configurations": {
"production": {
"devServerTarget": "bulma-app:serve:production"
}
}
}
import { BuilderContext, BuilderOutput, createBuilder } from
'@angular-devkit/architect';
import { json } from '@angular-devkit/core';
import { schema as BuilderOptions } from './schema';
export default createBuilder<json.JsonObject
& BuilderOptions>(execute);
async function execute(options: BuilderOptions,
context: BuilderContext)
: Promise<BuilderOutput> {
// custom logic to process
}
index.ts
import { BuilderContext, BuilderOutput, createBuilder } from
'@angular-devkit/architect';
import { json } from '@angular-devkit/core';
import { schema as BuilderOptions } from './schema';
export default createBuilder<json.JsonObject
& BuilderOptions>(execute);
async function execute(options: BuilderOptions,
context: BuilderContext)
: Promise<BuilderOutput> {
// custom logic to process
}
index.ts
const build = await context.scheduleTarget({
target: 'build',
project: context.target?.project || '',
configuration: 'production'
});
const schduleBuild = await context.scheduleBuilder('@angular-devkit/build-angular:browser', {
main: 'src/main.ts',
polyfills: "src/polyfills.ts",
});
index.ts
context.reportStatus('running');
// "error",
// "running",
// "stopped",
// "waiting"
context.reportRunning();
index.ts
{
"$schema": "@angular-devkit/architect/src/builders-schema.json",
"builders": {
"custom_builder_name": {
"implementation": "./deploy",
"schema": "./deploy/schema.json",
"description": "Runs any command line in the operating system."
}
}
}
builders.json
{
"$schema": "@angular-devkit/architect/src/builders-schema.json",
"builders": {
"custom_builder_name": {
"implementation": "./deploy",
"schema": "./deploy/schema.json",
"description": "Runs any command line in the operating system."
}
}
}
builders.json
{
"name": "@netlify-builder/deploy",
"version": "2.0.3",
"description": "A Netlify builder schematics for deployment",
"main": "index.js",
"builders": "./builders.json"
}
package.json
{
"name": "@netlify-builder/deploy",
"version": "2.0.3",
"description": "A Netlify builder schematics for deployment",
"main": "index.js",
"builders": "./builders.json"
}
package.json
"custom_builder_name": {
"builder": "package:custom_builder_name",
"options": {
// provide options
}
}
Demo
ngx-build-plus
@angular/fire:deploy
@angular-builders/jest
@azure/ng-deploy
Builders By Community
twitter.com/SantoshYadavDev
github.com/santoshyadav198613
https://www.linkedin.com/in/yadavsantosh/
santoshyadav.dev
Thank you