170 Commits

Author SHA1 Message Date
Alan Agius
ee14ab0193 refactor(@angular-devkit/build-angular): use optional chaining operator where possible in browser builder 2020-09-23 11:22:58 -05:00
Alan Agius
a73c947205 refactor(@angular-devkit/build-angular): use architect builder output error instead of logger 2020-09-23 11:22:58 -05:00
Alan Agius
76557029a9 style: add proper indentation to RXJS pipe operators 2020-09-23 11:22:58 -05:00
Alan Agius
11c6abdd79 refactor(@angular-devkit/build-angular): clean up differential loading config generation
Closes #16098
2020-09-23 11:22:58 -05:00
Alan Agius
d3ad09508f refactor(@angular-devkit/architect): remove deprecated TestLogger
BREAKING CHANGE:

Deprecated `TestLogger` has been removed. Use `logging` API from `'@angular-devkit/core'` instead.

**Note:** this change doesn't effect application developers.
2020-09-22 10:29:53 -05:00
Alan Agius
5996896076 feat(@angular-devkit/build-angular): improve build stats output format
With this change we also remove sourcemaps from build info to align with Webpack 5 output.
2020-09-18 14:52:38 -05:00
Alan Agius
13b17baebe refactor(@angular-devkit/build-angular): add spinners for localize and downlevelling 2020-09-16 10:38:58 -04:00
Alan Agius
0d10de5cbb refactor(@angular-devkit/build-angular): re-structure folder structure and move code
Previous
```
packages/angular_devkit/build_angular
├── plugins
│   └── webpack
└── src
    ├── angular-cli-files
    │   ├── models
    │   │   └── webpack-configs
    │   ├── plugins
    │   └── utilities
    │       ├── index-file
    │       └── service-worker
    ├── app-shell
    ├── browser
    │   └── specs
    ├── dev-server
    ├── extract-i18n
    ├── karma
    ├── ng-packagr
    ├── protractor
    ├── server
    ├── tslint
    ├── utils
    └── webpack
        └── models
```

Now
```
packages/angular_devkit/build_angular
├── plugins
└── src
    ├── app-shell
    ├── browser
    │   └── specs
    ├── dev-server
    ├── extract-i18n
    ├── karma
    ├── ng-packagr
    ├── protractor
    ├── server
    ├── tslint
    ├── utils
    │   └── index-file
    └── webpack
        ├── configs
        ├── plugins
        └── utils
```
2020-09-14 16:40:39 -04:00
Alan Agius
1ebd7e610d refactor(@angular-devkit/build-angular): use common logging function for webpack stats
With this change we align all builders to have the same output structure.
2020-09-10 16:21:28 +02:00
Alan Agius
f5ee8a0c1a fix(@angular-devkit/build-angular): don't generate vendor.js.map when vendor sourcemaps is disabled
This reduced the build time of an `ng new` application from `5920ms` to `4616ms`

Closes #18060
2020-09-03 00:22:08 +03:00
Alan Agius
d49888b350 docs: update fileReplacements description 2020-08-31 11:58:04 +01:00
Alan Agius
197e96b8c5 refactor(@angular-devkit/build-angular): remove deprecated scripts[].lazy and styles[].lazy
BREAKING CHANGE:

- Deprecated `scripts[].lazy` has been renamed with `scripts[].inject`
- Deprecated `styles[].lazy` has been renamed with `styles[].inject`

Note: this change only effects direct `@angular-devkit/build-angular` users and not application developers. Users will be migrated automatically off these options.
2020-08-31 11:54:23 +01:00
Alan Agius
dd260185a1 refactor(@angular-devkit/build-angular): deprecate extractCss browser builder option
BREAKING CHANGE:

Browser builder `extractCss` option default value has been changed from `false` to `true`. This is to reflect the default behaviour when this deprecated option is removed.
2020-08-31 11:54:23 +01:00
Hari G
61701ab259 fix(@angular-devkit/build-angular): handle base tag endOffset in index.html generation
* fix endOffset if the base tag is already present
* add test case for this

Closes #18381
2020-08-25 12:52:38 -04:00
Alan Agius
bbe83ae377 fix(@angular-devkit/build-angular): don't warn on transitive CommonJS dependencies in AOT mode
At the moment in AOT mode if a CommonJS dependency has transitive CommonJS dependency we are issue warning for both.

With this change we align the behaviour with JIT mode, where we issue warnings only for direct CommonJS dependencies or ES dependencies which have CommonJS dependencies.

Closes #18526
2020-08-14 16:21:49 +02:00
Alan Agius
155707a1ba fix(@angular-devkit/build-angular): don't log blank warnings in console
Closes #18524
2020-08-14 14:41:18 +02:00
Alan Agius
0ac6def35c test(@angular-devkit/build-angular): update allow js test plugin to make it strict compliant 2020-08-12 19:28:17 +01:00
Alan Agius
fc5d2b3ff2 test: remove tsconfig.base.json from test cases 2020-08-12 19:26:12 +01:00
Alan Agius
e11d55679e fix(@angular-devkit/build-angular): generate service worker manifest when running build in watch mode
Closes #16883
2020-08-07 00:58:18 +01:00
Alan Agius
05588fcee1 refactor: clean up unused code and imports 2020-07-24 08:01:52 +02:00
Alan Agius
2aedad9a9b fix(@angular-devkit/build-angular): suppress warning for CommonJS templateUrl and styleUrl
Currently, when users use either absolute paths, or path mappings in JIT mode, we issue a warning for templateUrl and styleUrl. With this change we suppress those warning.

Closes: #18057
2020-07-15 13:51:00 -04:00
Charles Lyding
c75a48dfcc test(@angular-devkit/build-angular): increase rebuild debounce times
CI performance variability can cause test flakes in rebuild tests due to the rebuilds taking longer than expected.  This change increases the 500ms debounce time for the web worker rebuild tests to 1000ms to mitigate these issues.
2020-07-13 12:17:06 -04:00
Charles Lyding
bcb41e3977 fix(@angular-devkit/build-angular): wrap ES5 differential loading bundles
This change ensures that classic (ES5) script's top-level function helpers do not get overwritten by other scripts top-level functions that happen to have the same name.  This is not an issue when using module script types because each module has its own scope.
2020-07-13 12:16:42 -04:00
Alan Agius
0a573e7376 fix(@angular-devkit/build-angular): remove non-global locale import warning
We have not yet deprecated the non-global locale data modules (e.g. `@angular/common/locales/fr`) so we should not be issuing warnings about developers using them.

We recently added warning suggesting that a "global" locale should be used instead, and the previous CommonJS/AMD warning about the format of these non-global modules are just confusing for the developer.

Reference: TOOL-1388
Closes: #18123
2020-07-07 08:56:59 +02:00
Alan Agius
64a2686293 fix(@angular-devkit/build-angular): show child compilation errors
Closes #17565
2020-07-03 09:42:24 +02:00
Alan Agius
c578c73575 fix(@angular-devkit/build-angular): show warning when using non global locale data
When using the `localize` option directly importing locale data from `@angular/common` is not needed because the Angular CLI  will automatically include locale data. When not using the `localize` option, most likely users meant to import the global variant of the local data.

See: https://angular.io/guide/i18n#import-global-variants-of-the-locale-data
2020-07-01 14:04:05 +01:00
Alan Agius
708360e267 fix(@angular-devkit/build-angular): match allowed dependencies against the package name
With this change we add the functionality to also match an allowed dependency against a package name. The package name is retrieved from the rawRequest.

Previously, users needed to add the request path which in some case might be a deep import. Ex: `zone.js/dist/zone-error`. With this change adding the package name example `zone.js` will suffice.

Closes: #18058
2020-07-01 14:04:05 +01:00
Alan Agius
f66c4bd2b9 docs(@angular-devkit/build-angular): update link for commonjs warning 2020-06-24 15:22:59 -04:00
Charles Lyding
3af3281e05 test(@angular-devkit/build-angular): use async expect in asset tests 2020-06-24 14:42:08 -04:00
Charles Lyding
3c734a89e1 fix(@angular-devkit/build-angular): use copy-on-write asset processing for non-watch builds
Optimized asset processing was only being performed when differential loading was enabled.  This change ensures that the optimized approach is used for non-watch builds.  This does not affect `ng serve` usage since it currently requires all application files to be in memory.
2020-06-24 14:42:08 -04:00
Alan Agius
01a0f1fce8 fix(@angular-devkit/build-angular): update copy-webpack-plugin to version 6
Fixes #17858
2020-06-09 11:36:40 +01:00
cexbrayat
03fc4aff00 refactor(@angular-devkit/build-angular): mention how to disable the warning for commonjs dependencies
The current message clearly mentions which dependencies are CommonJS ones, but doesn't point out how to get rid of the warning if nothing can be done. This commit adds a mention of `allowedCommonJsDependencies` in the warning to help developers (as we do for `versionMismatch` for example).
2020-05-28 15:03:37 -04:00
Alan Agius
93e253bc93 refactor: rename tsconfig.json to tsconfig.base.json 2020-05-20 12:12:33 -07:00
Charles Lyding
2ae0300ad5 refactor(@angular-devkit/build-angular): optimize parallel worker shutdown
Stopping the workers can be a potentially lengthy process with a multi-stage approach based on the state of the worker.  This can cause lengthy blocking of the build.  This change allows the shutdown to happen in parallel to the remainder of the build.
2020-05-18 19:30:03 +01:00
Charles Lyding
4048e3c26f test(@angular-devkit/build-angular): improve performance of autoprefixer tests
These tests check the output of the global stylesheet and require a browserslist to target IE but this also triggers differential loading which is unneeded for the test.
2020-05-18 19:30:03 +01:00
Alan Agius
4e4e0e42ec style: fix typo in allowedCommonJsDependencies description 2020-05-18 19:25:41 +01:00
Alan Agius
4d4fc099ff build: udate angular packages to version 10 2020-05-07 10:38:22 -07:00
Filipe Silva
ef7a07050a test(@angular-devkit/build-angular): build and test with Bazel 2020-04-30 15:12:46 -07:00
Alan Agius
8fb7e586cc refactor(@angular-devkit/build-angular): remove deprecated evalSourceMap, vendorSourceMap, profile and skipAppShell options
BREAKING CHANGE:

The following deprecated devkit builders options have been removed:
- `skipAppShell:` This has no effect
- `evalSourceMap`: This done to improve performance in older versions of the CLI and is no longer needed
- `vendorSourceMap`: Use `sourceMap.vendor` instead
- `profile`: Use `NG_BUILD_PROFILING` environment variable instead
2020-04-27 15:08:15 -07:00
Alan Agius
69aa460335 refactor(@angular-devkit/build-angular): remove deprecated es5BrowserSupport build option
BREAKING CHANGE
Deprecated browser builder option `es5BrowserSupport` has been removed. The inclusion for ES5 polyfills will be determined from the browsers listed in the browserslist configuration.
2020-04-22 10:38:19 -07:00
Charles Lyding
8a3e655845 fix(@angular-devkit/build-angular): avoid overwriting localize sourcemaps 2020-04-06 10:00:00 -07:00
Alan Agius
ea11c5549a feat(@angular-devkit/build-angular): show warnings when depending on CommonJS.
Depending on CommonJS modules is know to cause optimization bailouts. With this change when running a browser build and scripts optimization is enabled we display a warning.

To suppress the warning for a particular package, users can use the `allowedCommonJsDepedencies` builder options.

Example:
```
"build": {
  "builder": "@angular-devkit/build-angular:browser",
  "options": {
    ...
    "allowedCommonJsDepedencies": ["bootstrap"]
  },
}
```

Reference: TOOL-1328
2020-03-23 14:20:21 -07:00
Fabian Wiles
bc5ce395e5
Merge pull request #16648 from Toxicable/preserve-symlink-nodejs
feat(@angular-devkit/build-angular): default to NodeJS value for pres…
2020-03-23 14:18:27 -07:00
Charles Lyding
f0bada1925 fix(@angular/cli): allow for private use language subtags
Fixes:  #17163
2020-03-16 21:44:42 -07:00
Alan Agius
4e65705205 fix(@angular-devkit/build-angular): baseHref with protocol and localize option
`posix.join` will dedupe double forward slashes resulting in incorrect protocol.

Closes: #17029
2020-02-24 12:39:47 -08:00
Sachin Grover
764b977de4 fix(@angular/cli): expand locale pattern in all schemas for all cases
Fixes: #17032
2020-02-24 12:39:35 -08:00
Charles Lyding
6091879428 fix(@angular-devkit/build-angular): generate correct filenames when targeting ESNext
Fixes: #16906
2020-02-12 12:01:42 -08:00
Alan Agius
d0ede14918 refactor: remove safari nomodule polyfills as it's unsupported 2020-02-11 08:47:20 -08:00
Alan Agius
a2c0532ca7 fix(@angular-devkit/build-angular): provide supported browsers to babel
By default the browserslist `configPath` will default to `process.cwd()`. This might return incorrect data in a multi app workspace setup.

https://babeljs.io/docs/en/babel-preset-env#configpath
2020-02-04 07:29:27 -08:00
Alan Agius
237c1dcf2b build: update jest-worker to version 25.1.0 2020-01-23 15:28:37 -08:00