You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit dd25d8f
Browse filesBrowse the repository at this point in the historyBrowse files
fixup! test(@angular/build): add library builder scaling benchmark suite
Implemented the style-flavor matrix (`--style-flavor`, see "Style-flavor matrix" above):
`inline`, `inline-css`, `inline-scss`, `external`, `external-css`, `external-scss`, as a sweep
axis independent of `--layout`/`--count`/`--depth`. Defaults to `inline` only (matching the
prior behavior) since the full matrix multiplies build count by up to 6x; opt in with
`--style-flavor=<list>`.
|`--count=<n,n,...>`| Entry-point count targets, drives both layouts |`10,20,50,100,200,300,400,500,1000,2000`|
117
+
|`--depth=<n,n,...>`|**`layout=deep` only.** Explicit tree depths, overriding the depths otherwise derived from `--count`| derived from `--count`|
118
+
|`--style-flavor=<f,f,...>`| Style-flavor targets (see "Style-flavor matrix" above), one or more of `inline`, `inline-css`, `inline-scss`, `external`, `external-css`, `external-scss`|`inline`|
119
+
|`--iterations=<n>`| Measured iterations per size |`3`|
120
+
|`--json`| Output raw per-iteration measurements as JSON to stdout | N/A |
121
+
|`--csv=<path>`| Write raw per-iteration measurements as CSV to `<path>`| N/A (opt-in only) |
99
122
100
123
> `--count` and `--depth` are not independent sweep axes for `layout=deep`: `--count` is translated
101
124
> into depths (smallest `depth` with `2^depth >= n` per target, de-duplicated); `--depth` only
@@ -110,6 +133,15 @@ Sweep the flat layout at a single size:
Implemented the style-flavor matrix (`--style-flavor`, see "Style-flavor matrix" above):
199
+
`inline`, `inline-css`, `inline-scss`, `external`, `external-css`, `external-scss`, as a sweep
200
+
axis independent of `--layout`/`--count`/`--depth`. Defaults to `inline` only (matching the
201
+
prior behavior) since the full matrix multiplies build count by up to 6x; opt in with
202
+
`--style-flavor=<list>`.
203
+
204
+
This entry only verifies fixture correctness at small scale, not full-sweep performance
205
+
numbers -- a full style-flavor sweep is still Future Work.
206
+
207
+
Verification performed:
208
+
209
+
-`--layout=flat --count=5` and `--layout=deep --count=5` (8 entries, depth 3), all 6 flavors,
210
+
`--iterations=1`: all 12 builds completed with `status: "ok"`.
211
+
- Manually inspected a generated `inline-scss` fixture's `angular.json` to confirm
212
+
`inlineStyleLanguage: "scss"` is set only for that flavor, and compiled it standalone to
213
+
confirm the per-entry SCSS variable (`$ref-color-NNNN`) resolves to a literal color in the
214
+
built `.mjs` output (not left as unresolved `$...` syntax) -- i.e. SCSS is actually being
215
+
preprocessed, not passed through as plain CSS.
216
+
- Repeated the same compiled-output check for `external-scss` with the `deep` layout --
217
+
confirms external `.scss` stylesheets referenced via `styleUrl` also compile correctly.
218
+
- Verified `--csv` and `--json` output both include the new `styleFlavor` field.
219
+
- Verified `--style-flavor` rejects an unrecognized flavor name with a clear error listing the
220
+
valid set, consistent with existing `--layout`/`--count`/`--depth` validation.
221
+
164
222
## Future Work
165
223
166
-
- Style-flavor matrix: inline / inline-css / inline-scss / external / external-css / external-scss, swept across both layouts.
167
224
- A/B comparison against `ng-packagr` (both are already registered Architect builders — `@angular/build:ng-packagr` and `@angular/build:library` — so this is a same-builder-package comparison, not a separate tool invocation).
225
+
- Full style-flavor matrix sweep (default `--count` sweep x 6 flavors x 2 layouts) to quantify the actual performance impact of stylesheet processing and external file reads, now that the matrix is implemented.
168
226
- Dependencies between entry points.
169
227
- Shared stylesheet tokens imported by multiple components.
0 commit comments