36 Commits

Author SHA1 Message Date
Alan Agius
36c2423042 revert: fix(@ngtools/webpack): emit lazy routes errors on rebuilds
This reverts commit edb84b340ff996df2ca6a2aaf765304cc64fef3e

The team has decided to bring back the faster but potentially less accurate method of detecting lazy routes upon JIT rebuilds (first builds will always use the more complete Angular compiler method). Applications that do not have lazy routes within libraries and that only use direct string literals with loadChildren should not be affected by the potential of less accurate detection. Note that the function overload of loadChildren also does not apply to this situation.

For those projects where correctness of lazy route detection outweighs rebuild speed, please consider using AOT mode for development. AOT mode will also provide a full set of template errors as well which JIT mode is not capable of doing.

Fixes #13102
2019-01-08 13:38:13 -08:00
Alan
5e6b42c5e3 test: add tests for elide imports
This also adds the option to provide addition files when using `createTypescriptContext` this is paramount for the elide imports tests as without this certain symbols won't have the full details.

Which will cause tests to be false positive and re-surface issues like #13212
2018-12-20 11:38:01 -08:00
Alan Agius
8bded93d8a fix(@ngtools/webpack): import as results in the alias being undefined with Typescript 3.2
When using the `specifier.propertyName` with `typeChecker.getSymbolAtLocation` it will return a more detailed symbol then we originally have in the `usedSymbols` set.

We should probably use `symbol.id` to actually check if the symbols are the same, however the `id` is not exposed in the Symbol interface.

Using `node.name` will return the same symbol that we have stored in the set.

Fixes #13212
2018-12-19 10:55:05 -08:00
Alan Agius
51f4e075db test: remove debounce as it's causing flakes 2018-12-06 11:46:58 -08:00
Alan Agius
4f8a5b7a55 feat(@angular-devkit/build-angular): fine grain settings for optimization 2018-12-06 11:44:27 -08:00
Alan Agius
8bc6e79d89 fix(@ngtools/webpack): files are not being updated when using allowJs or resolveJsonModule (#13089)
* fix(@ngtools/webpack): files are not being updated when using `allowJs` or `resolveJsonModule`

Fixes #13076 and Fixes #12964

* test: add tests for allowJs and resolveJsonModule in watch mode

* test: improve tests for `allowJs`

When not using `allowJs` js files are not processed by the tsc compiler, but still processed by webpack.

So a correct test should be to check that the JS is transpiled down to ES5 syntax.
2018-11-30 14:10:18 -08:00
Alan Agius
0692cacd06 feat(@schematics/angular): account for root level assets and resourcesOutputPath (#13074)
* feat(@schematics/angular): account for root level assets and `resourcesOutputPath`

By default we are only account for assets inside the assets folder. Which breaks the offline experience.

Fixes #13067

* test: add test to verify root level assets in service workers
2018-11-30 14:08:03 -08:00
Alan Agius
8516d68213 feat(@angular-devkit/build-angular): fine grain settings for sourceMaps (#13062)
* feat(@angular/cli): update schema to match new `sourceMap`

* feat(@angular-devkit/build-angular): fine grain settings for sourceMaps

This PR add more control over which sourceMaps you want, Now you can enable sourceMaps for scripts only, styles only or both. Also we added another functionality which are hidden sourcemaps. These are normaly used for error reporting tools.

Fixes #7527
2018-11-30 13:11:52 -08:00
Alan Agius
a38566f18e feat(@angular-devkit/build-angular): add option to allow outputting css resources to a different folder
Added `resourcesOutputPath` option so that CSS assets such as images and fonts are outputted to a subfolder in `dist`
2018-11-15 17:09:43 -08:00
Alan Agius
1dbd574714 fix(@ngtools/webpack): Fix lazy loading (#12945)
* revert: fix(@ngtools/webpack): output consistent filename

This reverts commit df172bdc8af4caa1a908592a8b9400d31c81eeb0.

* refactor(@ngtools/webpack): remove RegExp for ngfactory

This RegExp is not needed as if it actually works it will break lazy loading as in case of AOT, the name should always be suffixed with ngfactory

4c2ce4e8ba/packages/core/src/linker/system_js_ng_module_factory_loader.ts (L83)
2018-11-14 12:41:27 -08:00
Filipe Silva
e4c0151241 test(@angular-devkit/build-angular): remove unneeded flag from test 2018-11-01 10:31:50 -07:00
Alan Agius
22dc791d96 fix(@angular-devkit/build-angular): error when using protocol-relative url
Fixes #12648
2018-10-23 11:58:29 -07:00
Alan Agius
f61ea6b69f fix(@ngtools/webpack): report a warning when lazy route discovery is disabled
At the moment this will cause a runtime error instead. With this change a warning will be shown during the build.

Closes #12238 and Closes #12025
2018-10-23 11:47:55 -07:00
Alan Agius
edb84b340f fix(@ngtools/webpack): emit lazy routes errors on rebuilds (#12418)
* fix(@ngtools/webpack): emit lazy routes errors on rebuilds

At the moment lazy route errors are only emitted in the initial builds because in following builds we are only processed lazy routes that are declared in the changed files.

At the moment, we cannot cache the previously resolved routes as there is no way to track in which file the lazy route was declared so that we can bust the lazy route if it was removed.

Closes #12236

* test: add test for compilation errors in watch mode

Closes #12311
2018-10-23 10:15:35 -07:00
Alan Agius
df172bdc8a fix(@ngtools/webpack): output consistent filename
At the moment when having namedChunks file names are different between JIT and AOT builds .

AOT will will output something like
```
customers-customers-module-ngfactory.9b8b989df2e32e5cadac.js
```
while JIT will output

```
customers-customers-module.js
```

This PR aligns the output file name
2018-10-15 14:32:47 -07:00
clydin
2bdf99bad3 test: cleanup poll CLI E2E test (#12497)
* test: cleanup poll CLI E2E test

* test(@angular-devkit/build-angular): adjust poll test
2018-10-10 12:07:13 -07:00
Charles Lyding
9ef66e2a3d test(@angular-devkit/build-angular): disable flaky poll test 2018-10-05 15:01:46 -07:00
Filipe Silva
ea89f758ce test(@angular-devkit/build-angular): add test for type checker replacements 2018-10-04 13:33:24 -07:00
Alan Agius
0cfd5737ac fix(@angular-devkit/build-angular): resolve assets in styles relative to importee
Closes #12430
2018-10-03 17:34:19 -07:00
Filipe Silva
048366b3ee feat(@angular-devkit/build-angular): add profile option to browser builder
This should help users send us profile logs for builds that take too long.
2018-09-26 08:24:07 -04:00
Charles Lyding
b403aa69c1 test(@angular-devkit/build-angular): improve resilience of watch rebuilds 2018-09-10 12:30:49 -07:00
Charles Lyding
96dc506038 test(@angular-devkit/build-angular): expand polling success threshold
polling is highly dependent on CPU and IO; with shared CI machines this can cause high variability
2018-09-10 12:30:49 -07:00
Alan Agius
bdebc9e0cb feat(@angular-devkit/build-angular): add ignore option to assets object
You can now provide an array of globs to `ignore` from copying

Closes #11850
2018-09-06 08:36:16 -07:00
Alan Agius
a723310e94 feat(@angular-devkit/build-optimizer): update typescript dependency to 3.0.x 2018-09-06 08:28:16 -07:00
Alan Agius
a2342b6a75 feat(@angular-devkit/build-angular): remove inlining of assets in css (#12027)
BREAKING CHANGE: Assets under 10Kib are not longer inlined in css
2018-08-29 09:27:21 -07:00
Alan Agius
1730c79b99 fix(@angular-devkit/build-angular): exclude .map files from budget … (#12012)
* fix(@angular-devkit/build-angular): exclude `.map` files from budget calculations

Closes #11999
2018-08-27 18:12:04 -07:00
Alan Agius
2d8443629e fix(@angular-devkit/build-angular): build should not hash lazy styles
When having `optimize` enabled the chunk Id doesn't match the bundle name, this we should use the chunk name instead

Closes #11772 and Closes #11704
2018-08-23 10:31:41 -07:00
Filipe Silva
6519745089 fix(@angular-devkit/build-angular): support inline javascript in less
Based on https://github.com/angular/devkit/pull/866
Fix https://github.com/angular/angular-cli/issues/10430
2018-08-22 11:52:49 -07:00
Alan Agius
1a255e6e4e build: bump TypeScript to 2.9 2018-08-04 16:23:37 +01:00
Charles Lyding
84ec3022c2 fix(@angular-devkit/build-angular): ensure failure with disabled AOT and enabled build optimizer
Fixes #11157
2018-07-30 08:07:03 -07:00
Charles Lyding
839c1f8a8d test(@angular-devkit/build-angular): add file replacement watch test
courtesy of @filipesilva
2018-07-12 15:53:29 -07:00
Hans Larsen
483cbe2665 refactor: add tslint-sonarts and a lot of tslint rules
This should clean up the code a bit.

Note: at first I added the no-useless-cast rule, but after getting frustrated
with it (as it has many false positive), I decided to remove the rule but some
useless casts were removed so I let those in the PR.
2018-07-10 15:07:36 -07:00
Filipe Silva
3529096a53 fix(@angular-devkit/build-angular): don't add hash to lazy styles
Fix #11235
2018-07-10 10:38:10 -04:00
Filipe Silva
54047d7b71 test(@angular-devkit/build-angular): test build-optimizer reduction 2018-07-09 11:09:23 -07:00
Filipe Silva
3e3dffba8e fix(@angular-devkit/architect): unsubscribe on timeout in runTargetSpec
This way cleanup logic runs on timeout.

It also simplifies timeout definition for runTargetSpec and Jasmine.
2018-07-05 11:43:11 -04:00
Hans Larsen
44086c60ff build: move devkit repo back to angular-cli 2018-06-05 18:50:06 -07:00