| <html> |
| <head> |
| <!-- Global site tag (gtag.js) - Google Analytics --> |
| <script |
| async |
| src="https://www.googletagmanager.com/gtag/js?id=UA-8594346-33" |
| ></script> |
| <script> |
| window.dataLayer = window.dataLayer || []; |
| function gtag() { |
| dataLayer.push(arguments); |
| } |
| gtag("js", new Date()); |
| |
| gtag("config", "UA-8594346-33"); |
| </script> |
| |
| <meta charset="utf-8" /> |
| <title>ABC: Angular Buildtools Convergence</title> |
| <base href="/" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <meta name="apple-mobile-web-app-capable" content="yes" /> |
| <meta name="mobile-web-app-capable" content="yes" /> |
| <link rel="icon" type="image/x-icon" href="favicon.ico" /> |
| |
| <link rel="stylesheet" href="assets/landing.css" /> |
| </head> |
| |
| <body class="docs-app-background"> |
| <material-docs-app |
| ><app-navbar class="mat-elevation-z6" _nghost-c1="" |
| ><nav _ngcontent-c1="" class="docs-navbar-header"> |
| <a |
| _ngcontent-c1="" |
| aria-label="Angular & Bazel" |
| class="docs-button mat-button" |
| mat-button="" |
| routerlink="/" |
| tabindex="0" |
| aria-disabled="false" |
| href="/" |
| ><span class="mat-button-wrapper"> |
| <img |
| _ngcontent-c1="" |
| alt="angular" |
| class="docs-angular-logo" |
| src="assets/angular-white-transparent.svg"/> |
| <img |
| _ngcontent-c1="" |
| alt="angular" |
| class="docs-angular-logo" |
| src="assets/bazel-white-transparent.svg" |
| width="20" |
| /></span> |
| <div class="mat-button-ripple mat-ripple" matripple=""></div> |
| <div class="mat-button-focus-overlay"></div></a |
| ><!----><a |
| _ngcontent-c1="" |
| class="docs-navbar-hide-small docs-button mat-button ng-star-inserted" |
| mat-button="" |
| tabindex="0" |
| aria-disabled="false" |
| href="https://next.angular.io/guide/bazel" |
| ><span class="mat-button-wrapper">Documentation</span> |
| <div class="mat-button-ripple mat-ripple" matripple=""></div> |
| <div class="mat-button-focus-overlay"></div></a |
| ><a |
| _ngcontent-c1="" |
| class="docs-navbar-hide-small docs-button mat-button ng-star-inserted" |
| mat-button="" |
| tabindex="0" |
| aria-disabled="false" |
| href="https://goo.gl/forms/Tv8lMdH0N3D4yo8Q2" |
| ><span class="mat-button-wrapper">Request Support</span> |
| <div class="mat-button-ripple mat-ripple" matripple=""></div> |
| <div class="mat-button-focus-overlay"></div></a |
| ><a |
| _ngcontent-c1="" |
| class="docs-navbar-hide-small docs-button mat-button" |
| mat-button="" |
| tabindex="0" |
| aria-disabled="false" |
| href="https://github.com/bazelbuild/rules_nodejs/tree/master/examples/angular" |
| ><span class="mat-button-wrapper">Example</span> |
| <div class="mat-button-ripple mat-ripple" matripple=""></div> |
| <div class="mat-button-focus-overlay"></div |
| ></a> |
| <div _ngcontent-c1="" class="flex-spacer"></div> |
| <version-picker _ngcontent-c1="" |
| ><mat-menu class="ng-tns-c6-0"><!----></mat-menu></version-picker |
| > |
| <a |
| _ngcontent-c1="" |
| aria-label="GitHub Repository" |
| class="docs-button docs-navbar-hide-small mat-button" |
| href="https://github.com/angular/angular/tree/master/packages/bazel" |
| mat-button="" |
| tabindex="0" |
| aria-disabled="false" |
| ><span class="mat-button-wrapper" |
| ><img |
| _ngcontent-c1="" |
| alt="angular" |
| class="docs-angular-logo" |
| src="assets/github-circle-white-transparent.svg" |
| /> |
| GitHub |
| </span> |
| <div class="mat-button-ripple mat-ripple" matripple=""></div> |
| <div class="mat-button-focus-overlay"></div></a |
| ><a |
| _ngcontent-c1="" |
| aria-label="GitHub Repository" |
| class="docs-button docs-navbar-show-small mat-icon-button" |
| href="https://github.com/angular/angular/tree/master/packages/bazel" |
| mat-icon-button="" |
| tabindex="0" |
| aria-disabled="false" |
| > |
| <div |
| class="mat-button-ripple mat-ripple mat-button-ripple-round" |
| matripple="" |
| ></div> |
| <div class="mat-button-focus-overlay"></div |
| ></a> |
| </nav> |
| </app-navbar> |
| <app-homepage _nghost-c9="" class="ng-star-inserted" |
| ><header _ngcontent-c9="" class="docs-header-background"> |
| <div _ngcontent-c9="" class="docs-header-section"> |
| <div _ngcontent-c9="" class="docs-header-headline"> |
| <h1 _ngcontent-c9="" class="mat-h1">Angular and Bazel</h1> |
| <h2 _ngcontent-c9=""> |
| Build and test Angular applications at scale like Google |
| </h2> |
| </div> |
| <div _ngcontent-c9="" class="docs-header-start"> |
| <a |
| _ngcontent-c9="" |
| class="docs-button mat-raised-button" |
| mat-raised-button="" |
| tabindex="0" |
| aria-disabled="false" |
| href="https://github.com/angular/angular/issues/19058" |
| ><span class="mat-button-wrapper">Subscribe for Updates</span> |
| <div class="mat-button-ripple mat-ripple" matripple=""></div> |
| <div class="mat-button-focus-overlay"></div |
| ></a> |
| </div> |
| </div> |
| </header> |
| <div _ngcontent-c9="" class="docs-homepage-promo first"> |
| <div _ngcontent-c9="" class="docs-homepage-row"> |
| <div _ngcontent-c9="" class="docs-homepage-promo-img"> |
| <svg |
| version="1.1" |
| id="Capa_1" |
| xmlns="http://www.w3.org/2000/svg" |
| xmlns:xlink="http://www.w3.org/1999/xlink" |
| x="0px" |
| y="0px" |
| viewBox="0 0 512 512" |
| style="enable-background:new 0 0 512 512;" |
| xml:space="preserve" |
| > |
| <circle style="fill:#7EC359;" cx="256" cy="256" r="256" /> |
| <circle style="fill:#F1592F;" cx="256" cy="256" r="210" /> |
| <circle style="fill:#FDFEFF;" cx="256" cy="256" r="187.512" /> |
| <path |
| style="fill:#70B1E1;" |
| d="M256,90.824c-91.088,0-165.176,74.092-165.176,165.176h2.156 |
| c13.4-75.576,85.896-127.472,163.02-113.8C256,121.968,256,109.9,256,90.824z" |
| /> |
| <path |
| style="fill:#F1592F;" |
| d="M372.748,139.252c-48.828,48.828-23.236,23.236-42,42.004c19.936,19.94,33.936,45.824,39.064,74.744 |
| h51.364C421.18,210.456,402.656,169.16,372.748,139.252z" |
| /> |
| <path |
| style="fill:#F5EA07;" |
| d="M372.748,139.252C342.84,109.344,301.544,90.824,256,90.824c0,19.08,0,31.14,0,51.38 |
| c28.916,5.128,54.804,19.112,74.744,39.056C359.452,152.548,354.548,157.452,372.748,139.252z" |
| /> |
| <g> |
| <polygon |
| style="fill:#656D7A;" |
| points="248.592,274.82 319.32,192.624 237.124,263.352 " |
| /> |
| <circle style="fill:#656D7A;" cx="256" cy="256" r="14.96" /> |
| </g> |
| <circle style="fill:#FDFEFF;" cx="256" cy="256" r="7.104" /> |
| <path |
| style="fill:#656D7A;" |
| d="M329.432,390.116H182.568c-7.324,0-13.26-5.936-13.26-13.26v-38.58c0-7.324,5.936-13.26,13.26-13.26 |
| h146.864c7.324,0,13.26,5.936,13.26,13.26v38.58C342.692,384.18,336.756,390.116,329.432,390.116z" |
| /> |
| <g> |
| <path |
| style="fill:#FDFEFF;" |
| d="M186.976,338.648c2.748-2.172,6.192-3.26,10.336-3.26s7.588,1.088,10.336,3.26 |
| s4.124,4.912,4.124,8.212s-1.54,6.224-4.616,8.768c4.144,2.624,6.216,6.316,6.216,11.072c0,3.692-1.476,6.788-4.432,9.288 |
| c-2.952,2.504-6.828,3.756-11.628,3.756s-8.672-1.252-11.628-3.756c-2.952-2.5-4.428-5.596-4.428-9.288 |
| c0-4.756,2.072-8.444,6.212-11.072c-3.076-2.544-4.612-5.464-4.612-8.768S184.228,340.824,186.976,338.648z M191.284,371.656 |
| c1.884,1.208,3.896,1.816,6.028,1.816s4.144-0.604,6.032-1.816c1.884-1.208,2.828-2.944,2.828-5.2s-0.9-3.996-2.704-5.228 |
| c-1.804-1.228-3.856-1.844-6.152-1.844s-4.348,0.616-6.152,1.844c-1.808,1.232-2.708,2.972-2.708,5.228 |
| C188.452,368.712,189.396,370.444,191.284,371.656z M191.868,352.092c1.54,1.252,3.356,1.876,5.444,1.876 |
| c2.092,0,3.908-0.624,5.444-1.876c1.54-1.252,2.308-2.788,2.308-4.616c0-1.824-0.768-3.352-2.308-4.58 |
| c-1.536-1.232-3.352-1.848-5.444-1.848s-3.904,0.616-5.444,1.848c-1.536,1.228-2.304,2.76-2.304,4.58 |
| C189.56,349.304,190.328,350.84,191.868,352.092z" |
| /> |
| <path |
| style="fill:#FDFEFF;" |
| d="M226.1,338.648c2.748-2.172,6.192-3.26,10.336-3.26s7.588,1.088,10.336,3.26 |
| s4.124,4.912,4.124,8.212s-1.54,6.224-4.616,8.768c4.144,2.624,6.216,6.316,6.216,11.072c0,3.692-1.476,6.788-4.432,9.288 |
| c-2.952,2.504-6.828,3.756-11.628,3.756s-8.672-1.252-11.628-3.756c-2.952-2.5-4.428-5.596-4.428-9.288 |
| c0-4.756,2.072-8.444,6.212-11.072c-3.076-2.544-4.612-5.464-4.612-8.768S223.356,340.824,226.1,338.648z M230.408,371.656 |
| c1.884,1.208,3.896,1.816,6.028,1.816s4.144-0.604,6.032-1.816c1.884-1.208,2.828-2.944,2.828-5.2s-0.9-3.996-2.704-5.228 |
| c-1.804-1.228-3.856-1.844-6.152-1.844s-4.348,0.616-6.152,1.844c-1.808,1.232-2.708,2.972-2.708,5.228 |
| C227.576,368.712,228.52,370.444,230.408,371.656z M230.992,352.092c1.54,1.252,3.356,1.876,5.444,1.876 |
| c2.092,0,3.908-0.624,5.444-1.876c1.54-1.252,2.308-2.788,2.308-4.616c0-1.824-0.768-3.352-2.308-4.58 |
| c-1.536-1.232-3.352-1.848-5.444-1.848s-3.904,0.616-5.444,1.848c-1.536,1.228-2.304,2.76-2.304,4.58 |
| C228.688,349.304,229.456,350.84,230.992,352.092z" |
| /> |
| <path |
| style="fill:#FDFEFF;" |
| d="M265.224,338.648c2.748-2.172,6.192-3.26,10.336-3.26s7.588,1.088,10.336,3.26 |
| s4.124,4.912,4.124,8.212s-1.54,6.224-4.616,8.768c4.144,2.624,6.216,6.316,6.216,11.072c0,3.692-1.476,6.788-4.432,9.288 |
| c-2.952,2.504-6.828,3.756-11.628,3.756s-8.672-1.252-11.628-3.756c-2.952-2.5-4.428-5.596-4.428-9.288 |
| c0-4.756,2.072-8.444,6.212-11.072c-3.076-2.544-4.612-5.464-4.612-8.768S262.48,340.824,265.224,338.648z M269.532,371.656 |
| c1.884,1.208,3.896,1.816,6.028,1.816s4.144-0.604,6.032-1.816c1.884-1.208,2.828-2.944,2.828-5.2s-0.9-3.996-2.704-5.228 |
| c-1.804-1.228-3.856-1.844-6.152-1.844s-4.348,0.616-6.152,1.844c-1.808,1.232-2.708,2.972-2.708,5.228 |
| C266.704,368.712,267.648,370.444,269.532,371.656z M270.116,352.092c1.54,1.252,3.356,1.876,5.444,1.876 |
| c2.092,0,3.908-0.624,5.444-1.876c1.54-1.252,2.308-2.788,2.308-4.616c0-1.824-0.768-3.352-2.308-4.58 |
| c-1.536-1.232-3.352-1.848-5.444-1.848s-3.904,0.616-5.444,1.848c-1.536,1.228-2.304,2.76-2.304,4.58 |
| C267.812,349.304,268.58,350.84,270.116,352.092z" |
| /> |
| <path |
| style="fill:#FDFEFF;" |
| d="M304.352,338.648c2.748-2.172,6.192-3.26,10.336-3.26s7.588,1.088,10.336,3.26 |
| s4.124,4.912,4.124,8.212s-1.54,6.224-4.616,8.768c4.144,2.624,6.216,6.316,6.216,11.072c0,3.692-1.476,6.788-4.432,9.288 |
| c-2.952,2.504-6.828,3.756-11.628,3.756s-8.672-1.252-11.628-3.756c-2.952-2.5-4.428-5.596-4.428-9.288 |
| c0-4.756,2.072-8.444,6.212-11.072c-3.076-2.544-4.612-5.464-4.612-8.768S301.604,340.824,304.352,338.648z M308.66,371.656 |
| c1.884,1.208,3.896,1.816,6.028,1.816s4.144-0.604,6.032-1.816c1.884-1.208,2.828-2.944,2.828-5.2s-0.9-3.996-2.704-5.228 |
| c-1.804-1.228-3.856-1.844-6.152-1.844s-4.348,0.616-6.152,1.844c-1.808,1.232-2.708,2.972-2.708,5.228 |
| C305.828,368.712,306.772,370.444,308.66,371.656z M309.24,352.092c1.54,1.252,3.356,1.876,5.444,1.876 |
| c2.092,0,3.908-0.624,5.444-1.876c1.54-1.252,2.308-2.788,2.308-4.616c0-1.824-0.768-3.352-2.308-4.58 |
| c-1.536-1.232-3.352-1.848-5.444-1.848s-3.904,0.616-5.444,1.848c-1.536,1.228-2.304,2.76-2.304,4.58 |
| C306.936,349.304,307.704,350.84,309.24,352.092z" |
| /> |
| </g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| </svg> |
| </div> |
| <div _ngcontent-c9="" class="docs-homepage-promo-desc"> |
| <h2 _ngcontent-c9="">Incremental re-builds</h2> |
| <p _ngcontent-c9=""> |
| A small change to your app should require a small re-build. |
| </p> |
| </div> |
| </div> |
| <div |
| _ngcontent-c9="" |
| class="docs-homepage-row docs-homepage-reverse-row" |
| > |
| <div _ngcontent-c9="" class="docs-homepage-promo-img"> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 185.6 200"> |
| <defs> |
| <style> |
| .cls-1 { |
| fill: #5480ae; |
| } |
| .cls-2 { |
| fill: #3c5c7d; |
| } |
| .cls-3 { |
| fill: #fff; |
| } |
| </style> |
| </defs> |
| <title>cli</title> |
| <g id="Layer_2" data-name="Layer 2"> |
| <g id="Layer_1-2" data-name="Layer 1"> |
| <polygon |
| class="cls-1" |
| points="92.4 0 92.4 0 92.4 0 0 33.3 14 156.1 92.4 200 92.4 200 92.4 200 171.3 156.1 185.6 33.3 92.4 0" |
| /> |
| <polygon |
| class="cls-2" |
| points="92.4 0 92.4 22.2 92.4 22.2 92.4 123.2 92.4 123.2 92.4 200 92.4 200 171.3 156.1 185.6 33.3 92.4 0" |
| /> |
| <path |
| class="cls-3" |
| d="M42.8,55v90h100V55ZM138,139.9H47.5V60.1h90.6v79.8Z" |
| /> |
| <polygon |
| class="cls-3" |
| points="60.1 111.4 63.5 114.9 82.8 95.5 63.2 75.9 59.8 79.3 76 95.5 60.1 111.4" |
| /> |
| <rect |
| class="cls-3" |
| x="82.8" |
| y="117.2" |
| width="30" |
| height="4" |
| /> |
| </g> |
| </g> |
| </svg> |
| </div> |
| <div _ngcontent-c9="" class="docs-homepage-promo-desc"> |
| <h2 _ngcontent-c9="">Works with Angular CLI</h2> |
| <p _ngcontent-c9=""> |
| Use the same <code>ng</code> commands you're used to. |
| </p> |
| </div> |
| </div> |
| <div _ngcontent-c9="" class="docs-homepage-row"> |
| <div _ngcontent-c9="" class="docs-homepage-promo-img"> |
| <svg |
| version="1.1" |
| id="Capa_1" |
| xmlns="http://www.w3.org/2000/svg" |
| xmlns:xlink="http://www.w3.org/1999/xlink" |
| x="0px" |
| y="0px" |
| viewBox="0 0 511.999 511.999" |
| style="enable-background:new 0 0 511.999 511.999;" |
| xml:space="preserve" |
| > |
| <path |
| style="fill:#A6E2E3;" |
| d="M420.79,234.945c50.372,0,91.209,40.824,91.209,91.197s-40.837,91.209-91.209,91.209H117.356 |
| C52.539,417.351,0,364.799,0,299.982s52.539-117.369,117.356-117.369c12.021,0,23.613,1.812,34.52,5.166 |
| c-0.379-3.244-0.6-6.537-0.6-9.879c0-45.978,37.274-83.252,83.24-83.252c44.435,0,80.731,34.802,83.118,78.637 |
| c10.576-9.536,24.556-15.338,39.906-15.338c32.929,0,59.615,26.686,59.615,59.615c0,6.133-0.93,12.045-2.656,17.615 |
| C416.579,235.043,418.673,234.945,420.79,234.945z" |
| /> |
| <path |
| style="opacity:0.1;enable-background:new ;" |
| d="M295.399,197.154c8.173-13.942,22.235-23.867,22.235-23.867 |
| c-2.387-43.836-38.682-78.638-83.118-78.638c-3.937,0-7.804,0.293-11.596,0.822C262.131,100.63,295.399,130.666,295.399,197.154z" |
| /> |
| <path |
| style="fill:#7CCBCC;" |
| d="M420.79,234.945c-2.118,0-4.211,0.098-6.292,0.232c1.726-5.569,2.656-11.482,2.656-17.615 |
| c0-32.929-26.686-59.615-59.615-59.615c-1.501,0-2.983,0.072-4.456,0.18c25.967,1.045,51.447,48.16,32.206,90.219 |
| c28.375,0,57.955,1.255,79.625,35.73c17.954,28.563,12.313,68.178-13.057,91.401c-9.052,8.286-35.091,23.953-61.817,23.953 |
| c-0.76-0.008-1.536-0.013-2.33-0.013H84.277c-13.524,0-26.509-2.295-38.598-6.505c19.826,15.318,44.685,24.438,71.678,24.438H420.79 |
| c50.372,0,91.209-40.836,91.209-91.209C511.999,275.769,471.163,234.945,420.79,234.945z" |
| /> |
| <g> |
| <polygon |
| style="fill:#FFFFFF;" |
| points="330.548,238.066 385.291,309.335 357.344,309.335 357.344,369.267 303.765,369.267 |
| 303.765,309.335 275.818,309.335 " |
| /> |
| <polygon |
| style="fill:#FFFFFF;" |
| points="236.169,297.999 181.439,369.267 126.708,297.999 154.643,297.999 154.643,238.066 |
| 208.235,238.066 208.235,297.999 " |
| /> |
| </g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| <g></g> |
| </svg> |
| </div> |
| <div _ngcontent-c9="" class="docs-homepage-promo-desc"> |
| <h2 _ngcontent-c9="">Cloud Ready</h2> |
| <p _ngcontent-c9=""> |
| Expand your build and test to run in parallel on a cluster of |
| workers. |
| </p> |
| </div> |
| </div> |
| <div |
| _ngcontent-c9="" |
| class="docs-homepage-row docs-homepage-reverse-row" |
| > |
| <div _ngcontent-c9="" class="docs-homepage-promo-img"> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 179.2 192.7"> |
| <defs> |
| <style> |
| .cls-labs-1 { |
| fill: #1de9b6; |
| } |
| .cls-labs-2 { |
| fill: #00bfa5; |
| } |
| .cls-labs-3 { |
| fill: #bbf8e9; |
| } |
| .cls-labs-4 { |
| fill: #fff; |
| } |
| </style> |
| </defs> |
| <title>labs</title> |
| <g id="Layer_2" data-name="Layer 2"> |
| <g id="Layer_1-2" data-name="Layer 1"> |
| <polygon |
| class="cls-labs-1" |
| points="89.4 0 89.4 0 89.4 0 0 32 13.5 150.4 89.4 192.7 89.4 192.7 89.4 192.7 165.4 150.4 179.2 32 89.4 0" |
| /> |
| <polygon |
| class="cls-labs-2" |
| points="89.4 0 89.4 21.4 89.4 21.4 89.4 118.7 89.4 118.7 89.4 192.7 89.4 192.7 165.4 150.4 179.2 32 89.4 0" |
| /> |
| <path |
| class="cls-labs-3" |
| d="M124.1,75.8l-37-11.5a2.8,2.8,0,0,0-3.5,1.9l-.2.5a2.9,2.9,0,0,0,1.9,3.5l7.1,2.2L85.2,95.5a30.4,30.4,0,0,0,1.7,60.7A30.7,30.7,0,0,0,98,153.8h0l1.5-.7a30.5,30.5,0,0,0,4.8-51.5l7.2-23.3,10.7,3.4a3,3,0,0,0,3.6-1.9v-.5A2.7,2.7,0,0,0,124.1,75.8Z" |
| /> |
| <ellipse |
| class="cls-labs-4" |
| cx="90.4" |
| cy="44.1" |
| rx="7.8" |
| ry="7.9" |
| /> |
| <ellipse |
| class="cls-labs-4" |
| cx="126.8" |
| cy="60.3" |
| rx="3.8" |
| ry="3.8" |
| /> |
| <ellipse |
| class="cls-labs-4" |
| cx="51.5" |
| cy="73.9" |
| rx="4.9" |
| ry="4.9" |
| /> |
| <path |
| class="cls-labs-4" |
| d="M111.3,134.2a26.3,26.3,0,1,1-50.2-15.6" |
| /> |
| </g> |
| </g> |
| </svg> |
| </div> |
| <div _ngcontent-c9="" class="docs-homepage-promo-desc"> |
| <h2 _ngcontent-c9="">Part of Angular Labs</h2> |
| <p _ngcontent-c9=""> |
| Not a stable, supported API, so use Bazel with caution in |
| production applications. We expect to promote it to stable for |
| Angular version 9. |
| </p> |
| </div> |
| </div> |
| <div |
| _ngcontent-c9="" |
| class="docs-homepage-bottom-start" |
| style="text-align: left" |
| > |
| <h2>📚 Resources</h2> |
| <h3>Projects</h3> |
| <ul> |
| <li> |
| <a |
| href="https://groups.google.com/forum/#!forum/rbe-alpha-customers" |
| >Remote Build Execution for Google Cloud Platform</a |
| > |
| </li> |
| <li> |
| <a href="https://github.com/bazelbuild/bazel-buildfarm" |
| >On-prem Bazel remote caching and execution service</a |
| > |
| </li> |
| |
| <li> |
| <a href="https://github.com/jin/awesome-bazel" |
| >A curated list of Bazel rules, tooling and resources</a |
| > |
| </li> |
| </ul> |
| |
| <h3>Talks</h3> |
| <ul> |
| <li> |
| Building Large Angular applications with Bazel |
| <a href="https://speakerdeck.com/mattem/building-large-angular-applications-with-bazel-angular-toronto">Slides</a> |
| <a href="https://www.youtube.com/watch?v=kzPMll6vB04">Video</a> |
| (AngularToronto, Feb 2020) |
| </li> |
| <li> |
| The Bazel Opt-in Preview is Here! |
| <a href="https://docs.google.com/presentation/d/1CZsABQJDjpBLun5Ewk3lNUTAHX2Y-pUb3-dfLMZ22DE/edit?usp=sharing">Slides</a> |
| <a href="https://www.youtube.com/watch?v=J1lnp-nU4wM">Video</a> |
| (NgConf, May 2019) |
| </li> |
| <li> |
| Building Apps Like Google with Angular, Bazel, and GCP |
| <a href="https://www.youtube.com/watch?v=lDyIc2Abkwg">Video</a> |
| (Google Cloud Next, April 2019) |
| </li> |
| |
| <li> |
| Layering in JS tooling |
| <a href="https://hackmd.io/p/HJZ_ekxuN">Slides</a> |
| <a |
| href="https://drive.google.com/file/d/1AxrwjLUf_35Z2C9VK5Ut7wo5L89roHH2/view" |
| >Video</a |
| > |
| (ModernWeb Meetup, March 2019) |
| </li> |
| |
| <li> |
| Angular, Bazel, and CLI |
| <a |
| href="https://docs.google.com/presentation/d/1weKiN44mj02uriWMnpVm-CYDVTjP-NT2nYmZe3ii4X0/preview" |
| >Slides</a |
| > |
| (AngularSF Meetup, January 2019) |
| </li> |
| |
| <li> |
| Bazel in Angular CLI |
| <a href="https://www.youtube.com/watch?v=fEUgZopCK8E">Video</a> |
| <a |
| href="https://docs.google.com/presentation/d/1VcSkWDFkmkZKCP9yTfKbq-lTMU3qW_3zNabKItCWDec/preview" |
| >Slides</a |
| > |
| (AngularNYC Meetup, January 2019) |
| </li> |
| |
| <li> |
| The CLI Roadmap |
| <a href="ttps://www.youtube.com/watch?v=tUCd6QSzEy4">Video</a> |
| (AngularConnect, November 2018) |
| </li> |
| |
| <li> |
| Develop Angular like Google Does |
| <a |
| href="https://docs.google.com/presentation/d/1b0PdG-bxN0nwHa3ZuA0a_anOEYeMoI_CSsZl6ngZWp8/preview?slide=id.g26d86d3325_0_0" |
| >Slides</a |
| > |
| (AngularMIX, October 2018) |
| </li> |
| |
| <li> |
| Building large Angular apps with Bazel |
| <a |
| href="https://docs.google.com/presentation/d/1ZIKO07h9fFAyJnMGK-TE3Tr-NXi-9jOYEaQDXcIMZ-A/preview" |
| >Slides</a |
| > |
| <a href="https://www.youtube.com/watch?v=yBg9zG6ZGb4">Video</a> |
| (BazelCon, October 2018) |
| </li> |
| |
| <li> |
| How I love being ejected |
| <a href="https://goo.gl/Szcnfk">Slides</a> |
| <a href="https://www.youtube.com/watch?v=ieRJwFGWEOM">Video</a> |
| (ng-conf, April 2018) |
| </li> |
| <li> |
| Angular Libraries in Bazel |
| <a |
| href="https://docs.google.com/presentation/d/1SU3rjpj8YEAyLAhHJwtO7TR1d_Sx1e9iGI3osiasPhA/preview " |
| >Slides</a |
| > |
| (AngularSF Meetup, April 2018) |
| </li> |
| |
| <li> |
| Bazel for building Angular Applications |
| <a href="https://www.youtube.com/watch?v=KmaE6z_ECRg ">Video</a> |
| (St. Louis Angular Lunch, February 2018) |
| </li> |
| |
| <li> |
| Building Angular Applications like Google |
| <a |
| href="https://docs.google.com/presentation/d/1EudIzQvz9gzVPr0UdP1DymlbhfG29kFCeiJVVEE_FVw/preview" |
| >Slides</a |
| > |
| <a href="https://www.youtube.com/watch?v=CeUF9hjdoZQ">Video</a> |
| (AngularConnect, November 2017) |
| </li> |
| |
| <li> |
| Bazel for Web Frontends |
| <a href="https://goo.gl/ebcPXi">Slides</a> |
| <a href="https://www.youtube.com/watch?v=0pgERydGyqo">Video</a> |
| (BazelCon November 2017) |
| </li> |
| |
| <li> |
| Angular with Bazel and Closure |
| <a |
| href="https://docs.google.com/presentation/d/1gFta6MSrafNap4YFA6SfL8uRKJMsQlZ8RsZj8RJ0_6k/preview" |
| >Slides</a |
| > |
| <a href="https://www.youtube.com/watch?v=tnKyXH_5028">Video</a> |
| (AngularMIX October 2017) |
| </li> |
| </ul> |
| <h3>Articles</h3> |
| <ul> |
| <li> |
| <a |
| href="https://medium.com/@Jakeherringbone/automated-testing-of-each-commit-ci-6f718d93d0da" |
| > |
| Automated testing of each commit != CI |
| </a> |
| (January 2019) |
| </li> |
| <li> |
| <a |
| href="https://medium.com/@Jakeherringbone/running-tools-under-bazel-8aa416e7090c" |
| > |
| Running tools under Bazel |
| </a> |
| (November 2018) |
| </li> |
| |
| <li> |
| <a |
| href="https://medium.com/@Jakeherringbone/multiple-npm-packages-in-a-bazel-monorepo-5072f2aebdb2" |
| > |
| Multiple npm packages in a Bazel monorepo |
| </a> |
| (March 2018) |
| </li> |
| |
| <li> |
| <a |
| href="https://medium.com/@Jakeherringbone/deploying-an-angular-app-to-kubernetes-using-bazel-preview-91432b8690b5" |
| > |
| Deploying an Angular app to Kubernetes using Bazel (preview) |
| </a> |
| (January 2018) |
| </li> |
| |
| <li> |
| <a |
| href="https://medium.com/dailyjs/building-angular-apps-at-scale-813ef42add04" |
| > |
| Building Angular apps at Scale</a |
| > |
| (August 2017) |
| </li> |
| |
| <li> |
| <a |
| href="https://medium.com/@Jakeherringbone/what-angular-is-doing-with-bazel-and-closure-21f526f64a34" |
| >What Angular is doing with Bazel and Closure</a |
| > |
| (April 2017) |
| </li> |
| </ul> |
| |
| <h3>Trainings</h3> |
| <ul> |
| <li> |
| LiveCoding a Bazel rule for Stylus |
| <a |
| href="https://drive.google.com/drive/folders/1I71w8JSGcZk1nUX2oXvT8NLT47Onb1t0" |
| >Video</a |
| > |
| (July 2019) |
| </li> |
| |
| <li> |
| Bazel Training for Angular Team |
| <a |
| href="https://docs.google.com/presentation/d/1OwktccLvV3VvWn3i7H2SuZkBeAQ8z-E5RdJODVLf8SA/preview" |
| >Slides</a |
| > |
| (January 2019) |
| </li> |
| |
| <li> |
| Full Stack development with Nx and Bazel |
| <a |
| href="https://docs.google.com/presentation/d/1fSZwcpO9hUBFd_k9hUS45ZyVJcZLEyz0VxISSOnIZ1I/preview" |
| >Slides</a |
| > |
| <a href="https://www.youtube.com/watch?v=1KDDIhcQORM">Video</a> |
| (ng-conf, April 2018) |
| </li> |
| |
| <li> |
| ABC Deep Dive tech talk |
| <a href="https://goo.gl/zDYWsq">Slides</a> |
| <a href="https://youtu.be/z9Q_2N9oaG8">Video</a> |
| (February 2018) |
| </li> |
| </ul> |
| |
| <h3>Examples</h3> |
| <ul> |
| <li> |
| <a href="https://github.com/mgechev/bazel-demo">TypeScript Bazel "Hello World" example</a> |
| </li> |
| <li> |
| <a href="https://github.com/mgechev/real-world-bazel">The "Real World Angular Example" with Bazel build</a> |
| </li> |
| <li> |
| <a href="https://github.com/angular/angular-bazel-example">Enterprise example build & test angular with bazel</a> |
| </li> |
| <li> |
| <a href="https://github.com/GoogleCloudPlatform/gke-bazel-demo">Java backend and Angular frontend deployed together to Kubernetes</a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| <app-footer _ngcontent-c9="" _nghost-c10="" |
| ><footer _ngcontent-c10="" class="docs-footer"> |
| <div _ngcontent-c10="" class="docs-footer-list"> |
| <div _ngcontent-c10="" class="docs-footer-logo"> |
| <div _ngcontent-c10="" class="footer-logo"> |
| <img |
| _ngcontent-c10="" |
| alt="angular" |
| class="docs-footer-angular-logo" |
| src="assets/angular-white-transparent.svg" |
| /><span _ngcontent-c10="" |
| ><a _ngcontent-c10="" href="https://angular.io" |
| >Learn Angular</a |
| ></span |
| > |
| </div> |
| </div> |
| <div _ngcontent-c10="" class="docs-footer-copyright"> |
| <span _ngcontent-c10="">Powered by Google ©2010-2019.</span |
| ><span _ngcontent-c10="" |
| >Code licensed under an MIT-style License.</span |
| ><span _ngcontent-c10="" |
| >Documentation licensed under CC BY 4.0.</span |
| > |
| </div> |
| </div> |
| </footer></app-footer |
| ></app-homepage |
| ></material-docs-app |
| > |
| </body> |
| </html> |