943 Commits

Author SHA1 Message Date
Charles Lyding
a78eaad91a test(@angular-devkit/build-angular): add browser builder scripts longhand option tests
This change adds expanded unit tests for the browser builder's `scripts` longhand option using the builder test harness.
2021-01-12 09:34:49 +01:00
Charles Lyding
76b023e55e feat(@angular-devkit/build-angular): update IE11 Object/Array polyfills
This change adds the following polyfills for IE11 (`nomodule` browsers):
ES2016:
Array.prototype.includes
ES2017:
Object.entries
Object.values
Object.getOwnPropertyDescriptors
ES2019:
Object.fromEntries
Array.prototype.flat
Array.prototype.flatMap
2021-01-12 09:30:23 +01:00
Alan Agius
a266f55b6c test(@angular-devkit/build-angular): change extractLicenses unit test to use build harness
This change adds a unit tests for the browser builder's extractLicenses option using the builder test harness.
2021-01-11 19:57:01 +01:00
Alan Agius
df897f0e41 docs: update Ivy NGCC link 2021-01-11 19:16:23 +01:00
Alan Agius
3e6a10219b test(@angular-devkit/build-angular): change allowedCommonJsDependencies unit test to use build harness
This change adds a unit tests for the browser builder's allowedCommonJsDependencies option using the builder test harness.
2021-01-11 19:15:57 +01:00
Alan Agius
5e2e392241 test(@angular-devkit/build-angular): add appendToFile helper to build harness 2021-01-11 19:15:57 +01:00
Charles Lyding
4f352ea204 refactor(@angular-devkit/build-angular): use script target in custom babel loader
This change uses the project's TypeScript configuration script target to determine the required Babel processing.
2021-01-11 08:22:10 +01:00
wenqi73
ab72f8dab0 feat(@angular-devkit/build-angular): support extracting and merging with arb format 2021-01-08 20:45:08 +01:00
wenqi73
dc9766738d feat(@angular-devkit/build-angular): support extracting with json file 2021-01-08 20:45:08 +01:00
Charles Lyding
35d8adf020 feat(@angular-devkit/build-angular): integrate Angular compiler linker
The newly introduced library linker mode that removes the need for ngcc is integrated into the Angular CLI's build system.  This allows libraries that are built in linker mode to be used when building an application.
2021-01-08 15:45:45 +01:00
Alan Agius
73973ae6a0 Revert "docs: add default value for karma watch option"
This reverts commit a3b676f623cb7ca7825c2991ebc1135e52cfa1a9.
2021-01-07 18:53:04 +01:00
Alan Agius
1df8a3d09d fix(@angular-devkit/build-angular): correctly resolve symlinked global styles entrypoints
With this change we resolve the global stylesheet entrypoint path to use the realpath instead of the symlink path.

Fixes #3500
2021-01-06 12:01:45 +00:00
Charles Lyding
683b0c0f38 test(@angular-devkit/build-angular): add browser builder styles option tests
This change adds expanded unit tests for the browser builder's `styles` option using the builder test harness.
2021-01-06 11:55:51 +00:00
Charles Lyding
ca5f076534 test(@angular-devkit/build-angular): add browser builder statsJson option tests
This change adds expanded unit tests for the browser builder's `statsJson` option using the builder test harness.
2021-01-06 11:51:48 +00:00
Alan Agius
cfb368408b fix(@angular-devkit/build-angular): don't downlevel web-animations-js
This library is minified and it causes Babel to consume a lot of resources when trying to downlevel.

Closes #19660
2021-01-05 11:29:34 +00:00
Charles Lyding
3aa8bb1b3f test(@angular-devkit/build-angular): add initial browser builder watch option tests 2021-01-05 11:02:57 +00:00
Charles Lyding
bec3bec3b2 test(@angular-devkit/build-angular): integrate custom file watching into harness
This change integrates the recently introduced internal custom file watching support into the builder test harness.  This allows the test harness to directly trigger file changes and allows more comprehensive test isolation for builder watch scenarios.
2021-01-05 11:02:57 +00:00
Charles Lyding
11bbe7c45f refactor(@angular-devkit/build-angular): add internal custom file watcher support
This change adds internal support for providing a custom file watching mechanism to the browser (and associated) builders.  The support integrates and overrides the Webpack watch system when enabled.  This is currently intended to support builder unit testing use cases.
2021-01-05 11:02:57 +00:00
Charles Lyding
1194b9bced test(@angular-devkit/build-angular): add browser builder scripts shorthand option tests
This change adds expanded unit tests for the browser builder's `scripts` shorthand option using the builder test harness.
2021-01-05 11:02:30 +00:00
Charles Lyding
f4dfc0b954 test(@angular-devkit/build-angular): simplify usage of content/size Jasmine helpers
This change removes the need to perform an existence check prior to expecting a file's content or size in harness based builder tests.
2021-01-05 11:02:30 +00:00
Charles Lyding
97aa1fb7cc test(@angular-devkit/build-angular): add browser builder assets option tests
This change adds expanded unit tests for the browser builder's `assets` option using the builder test harness.
2021-01-04 11:52:57 +01:00
Charles Lyding
a5c93408c6 test(@angular-devkit/build-angular): add browser builder tsConfig option tests
This change adds expanded unit tests for the browser builder's `tsConfig` option using the builder test harness.
2021-01-04 11:37:39 +01:00
Charles Lyding
f4998f35a2 test(@angular-devkit/build-angular): add browser builder polyfills option tests
This change adds expanded unit tests for the browser builder's `polyfills` option using the builder test harness.
2021-01-04 11:36:38 +01:00
Alan Agius
7cd06b7f23 docs: update optimization and sourceMap descriptions with new links
https://next.angular.io/guide/workspace-config#source-map-configuration
https://next.angular.io/guide/workspace-config#optimization-configuration
2020-12-23 08:25:53 +01:00
Alan Agius
a3b676f623 docs: add default value for karma watch option 2020-12-23 08:25:19 +01:00
Charles Lyding
faf7b26ef9 test(@angular-devkit/build-angular): add browser builder option test for main 2020-12-18 10:37:26 +01:00
Charles Lyding
bfd91096be test(@angular-devkit/build-angular): add harness file jasmine helpers
This change adds an `expectFile` jasmine helper function that reduces the amount of code necessary to check a file's existence, size, or content.  Additional contextual information is also displayed when an expectation fails.
2020-12-18 10:37:26 +01:00
Charles Lyding
97bfd46b67 test(@angular-devkit/build-angular): use harness for browser builder works test
This converts the 'works' spec to use the new builder harness for testing. The change also provides for a before/after comparison of an existing test.
2020-12-18 10:37:26 +01:00
Charles Lyding
bcac38331e test(@angular-devkit/build-angular): add builder test harness 2020-12-18 10:37:26 +01:00
Charles Lyding
0e5dab45ef fix(@angular-devkit/build-angular): use URL rewrite in karma fallback middleware
This changes the internal Angular Karma plugin's asset fallback middleware to rewrite the request URL directly instead of trying to copy the request properties.  With changes in newer Node.js versions, not all request properties may be enumerable.

Fixes: #19644
2020-12-18 08:31:59 +01:00
Alan Agius
ba9c755f33 fix(@angular-devkit/build-angular): add console error when using HMR in production mode
FIx: #19591
2020-12-15 12:25:15 +00:00
Alan Agius
e68c59a37c docs: update inline option description 2020-12-09 14:36:07 -05:00
Alan Agius
f0d18e990e docs: change sourcemap to source map
The latter is more in used in other articules such as:
-  https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map
- https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps
2020-12-09 14:36:07 -05:00
Keen Yee Liau
48a278e18f fix(@angular-devkit/build-angular): identify plugin provided as string
Karma plugins could be provided either a string or object, but our detection
logic for code coverage plugin only covers the string case.

Fix #19571
2020-12-09 09:52:57 -05:00
Charles Lyding
c94a1961fc fix(@angular-devkit/build-angular): define forwardRef as a pure function
By configuring the optimizer (`terser`) to be aware that the Angular `forwardRef` helper function is a pure function, the optimizer can completely remove the helper call when the return value is unused.
2020-12-08 19:54:14 -05:00
Alan Agius
d3afdcc1b3 fix(@angular-devkit/build-angular): add file path in CSS optimization exception
Closes #19561
2020-12-08 14:39:36 -05:00
Alan Agius
ca69c8c6b4 fix(@angular-devkit/build-angular): update ScriptsWebpackPlugin to work with Webpack 5
Closes: #19550
2020-12-07 15:23:29 -05:00
Alan Agius
eb30a92e8a feat(@angular-devkit/build-angular): enable inlining of critical CSS optimizations
This is another feature that we mentioned in the Eliminate Render Blocking Requests RFC (#18730)

Inlining of critical CSS is turned off by default. To opt-in this feature set `inlineCritical` to `true`.

Example:
```json
"configurations": {
  "production": {
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.prod.ts"
      }
    ],
    "optimization": {
      "styles": {
        "minify": true,
        "inlineCritical": true,
       }
    },
```

To learn more about critical CSS see;
https://web.dev/defer-non-critical-css
https://web.dev/extract-critical-css/

In a future version of the Angular CLI `inlineCritical` will be enabled by default.

Closes: #17966
Closes: #11395
Closes: #19445
2020-12-04 15:41:29 -05:00
Alan Agius
ee6bb1359f docs: fix elimination typo 2020-12-04 13:42:26 -05:00
Alan Agius
227804fd6e fix(@angular-devkit/build-angular): stylus not resolving imports from libraries
- Adds usage of webpackImporter https://www.npmjs.com/package/stylus-loader#webpackimporter
- Removes resolve-url-loader usage since stylus handles resolve paths https://stylus-lang.com/docs/js.html#stylusresolveroptions

Closes #19524
2020-12-03 12:59:08 -05:00
Alan Agius
a46bad4e31 fix(@angular-devkit/build-angular): fix termination of process when using CTRL+C
Closes #19531
2020-12-03 12:58:49 -05:00
Alan Agius
6fe8a6338d fix(@angular-devkit/build-angular): update index html webpack plugin to use non deprecated Webpack 5 API 2020-12-03 10:42:09 -05:00
Alan Agius
b546d798bc docs: add description to localize option 2020-11-30 19:04:21 +01:00
Alan Agius
064d62014c fix(@angular-devkit/build-angular): resolve partial SCSS files in sourcemaps
Closes #19505
2020-11-30 11:17:20 +01:00
Charles Lyding
f8b9fecf88 fix(@angular-devkit/build-angular): allow default Webpack 5 caching
With upstream fixes in place, the default Webpack 5 caching behavior can now be enabled.  In development mode, memory caching will now be used, and in production, caching will be disabled as per Webpack 5 default behavior.
2020-11-26 09:17:12 +01:00
Alan Agius
9c57e45d4e docs: improve description for optimization, configuration and target options.
Closes #16572
Closes #17978
Closes https://github.com/angular/angular/issues/39780
2020-11-25 09:09:00 +00:00
Alan Agius
d71ee210bf fix(@angular-devkit/build-angular): apply local libraries sourcemap without vendor: true
With this change we apply sourcemaps of libraries in a monorepo without the need to enable `vendor: true`. This is more intuitive behavior and  in line with what the users expect.

We also suppress the `Failed to parse source map from` in-actionable warning.

Closes #11305
2020-11-24 13:33:50 +00:00
Alan Agius
9908b59fd1 fix(@angular-devkit/build-angular): handle HTML file with no body and head tags
Closes #19426
2020-11-20 11:38:04 +00:00
Alan Agius
0b06fd6951 fix(@angular-devkit/build-angular): disable output hashing when running dev-server
Using output hashing with the dev-server can cause memory leaks because the dev server does not know when to clean up the old files.

See: https://github.com/webpack/webpack-dev-server/issues/377#issuecomment-241258405

Closes #10411
2020-11-20 11:37:39 +00:00
Alan Agius
c8aafad607 test(@angular-devkit/build-angular): add test to simulate dotnet proxy 2020-11-18 13:18:16 -05:00