773 Commits

Author SHA1 Message Date
Alan Agius
0701afc31f fix(@angular-devkit/build-angular): browser builder should not swollow error messages
Closes #14813
2019-06-19 17:07:53 -07:00
Alan
c7135fae35 fix(@angular-devkit/build-angular): browser builder should not swollow error messages
Closes #14813
2019-06-19 17:07:27 -07:00
Charles Lyding
0ed8de1e8a refactor(@angular-devkit/build-angular): cleanup compatible Angular version check 2019-06-19 17:06:28 -07:00
Alan
3bb67d81fb fix(@angular-devkit/build-optimizer): incorrectly augmented ES2015 default class exports
Fixes #14769
2019-06-18 18:27:52 -07:00
Alan Agius
c9535a53c2 fix(@angular-devkit/build-optimizer): wrap TypeScript string enums in IIFE
Fixes #14786
2019-06-18 18:27:13 -07:00
Renovate Bot
5b9415f7d3 build: update webpack-dev-server to version 3.7.2 2019-06-18 18:25:52 -07:00
Charles Lyding
8ef316745f refactor(@angular-devkit/architect-cli): use stable workspace API 2019-06-18 18:25:40 -07:00
Charles Lyding
d3e2267afe test(@angular-devkit/build-ng-packagr): use stable workspace API 2019-06-18 18:25:40 -07:00
Charles Lyding
991599c0ca test(@angular-devkit/build-webpack): use stable workspace API 2019-06-18 18:25:40 -07:00
Renovate Bot
1d7cf6aa23 build: update browserslist to version 4.6.3 2019-06-18 18:24:55 -07:00
Renovate Bot
780ef797e1 build: update core-js to version 3.1.4 2019-06-15 11:49:47 -07:00
Alan
be210778f4 fix(@angular-devkit/build-angular): emit warning when using extract-i18n in Ivy
i18n is not yet implemented in Ivy, we should emit a warning stating this and exit gracefully.

This also swaps the readTsConfig logic to use `@angular/compiler-cli` instead of `typescript`. This is needed because when parsing the tsconfig, typescript is not aware of `angularCompilerOptions` and will not merged them if they are at un upper level tsconfig file when using `extends`.

Closes #14225
2019-06-14 12:56:33 -07:00
istiti
d7a0a69f03 feat(@angular-devkit/build-angular): move milliseconds time audit at the end of console
In a project with a lot of lazy modules we need scroll console window to see Date - Hash - Time audit message.

This PR should keep Date - Hash - Time at the end on first `ng s` or `ng b` to see if first build just happend or not. On rebuild only Time is at the end which is most valuable

Before:
```
$ ng s
Date: 2019-06-04T14:41:49.775Z
Hash: 998791a06c755186a7dc
Time: 37700ms
chunk {0} 0.205d3a05f39f54abaf98.js () 26.3 kB  [rendered]
chunk {1} 1.78ebb349f1f621ecc6dd.js () 85.3 kB  [rendered]
chunk {2} 2.6999dce3fa088a3aa465.js () 33.9 kB  [rendered]
chunk {3} 3.5532acdb300ef6741a51.js () 49.2 kB  [rendered]
chunk {4} 4.2add4f56d22ab59d79c6.js () 56.9 kB  [rendered]
...
chunk {137} 137.a15fd611c1c4b96d409a.js () 3.26 kB  [rendered]
chunk {138} 138.c9e103d1056bb9d070e3.js () 2.94 kB  [rendered]
chunk {139} 139.455c4ac2d85c520f1254.js () 3.17 kB  [rendered]
chunk {140} 140.4ca3e4f5eccec58809be.js () 4.29 kB  [rendered]
chunk {141} 141.c27def44603508d8df52.js () 2.37 kB  [rendered]
chunk {common} common.b74eca2038a9b1b5f3e4.js (common) 39.7 kB  [rendered]
chunk {main} main.db063f94924f162703a2.js (main) 163 kB [initial] [rendered]
chunk {polyfills} polyfills.4ac5e2c02b432e50dfda.js (polyfills) 295 kB [initial] [rendered]
chunk {polyfills-es5} polyfills-es5.5468c4e590607eea5bd4.js (polyfills-es5) 462 kB [initial] [rendered]
chunk {runtime} runtime.7381db3f14ba80dfec8f.js (runtime) 12.7 kB [entry] [rendered]
chunk {scripts} scripts.9a46a0e28dae0f11bffb.js (scripts) 20.3 kB [entry] [rendered]
chunk {styles} styles.e8c91b6de63cbd1ef1be.js (styles) 624 kB [initial] [rendered]
chunk {vendor} vendor.eccdafeabbb649d68877.js (vendor) 4.77 MB [initial] [rendered]
** Angular Live Development Server is listening on 0.0.0.0:80, open your browser on http://localhost:80/ **
i 「wdm」: Compiled successfully.
i 「wdm」: Compiling...

Date: 2019-06-04T14:41:54.313Z - Hash: 41c1ac04e7ee47d1f385 - Time: 1463ms
148 unchanged chunks
chunk {64} 64.ca3cef05dbfd71b73683.js () 36.2 kB  [rendered]
chunk {runtime} runtime.629babcdb3b730464fa1.js (runtime) 12.7 kB [entry] [rendered]
i 「wdm」: Compiled successfully.
```

After:
```
$ ng serve
chunk {0} 0.205d3a05f39f54abaf98.js () 26.3 kB  [rendered]
chunk {1} 1.78ebb349f1f621ecc6dd.js () 85.3 kB  [rendered]
chunk {2} 2.6999dce3fa088a3aa465.js () 33.9 kB  [rendered]
chunk {3} 3.5532acdb300ef6741a51.js () 49.2 kB  [rendered]
chunk {4} 4.2add4f56d22ab59d79c6.js () 56.9 kB  [rendered]
...
chunk {137} 137.a15fd611c1c4b96d409a.js () 3.26 kB  [rendered]
chunk {138} 138.c9e103d1056bb9d070e3.js () 2.94 kB  [rendered]
chunk {139} 139.455c4ac2d85c520f1254.js () 3.17 kB  [rendered]
chunk {140} 140.4ca3e4f5eccec58809be.js () 4.29 kB  [rendered]
chunk {141} 141.c27def44603508d8df52.js () 2.37 kB  [rendered]
chunk {common} common.b74eca2038a9b1b5f3e4.js (common) 39.7 kB  [rendered]
chunk {main} main.db063f94924f162703a2.js (main) 163 kB [initial] [rendered]
chunk {polyfills} polyfills.4ac5e2c02b432e50dfda.js (polyfills) 295 kB [initial] [rendered]
chunk {polyfills-es5} polyfills-es5.5468c4e590607eea5bd4.js (polyfills-es5) 462 kB [initial] [rendered]
chunk {runtime} runtime.b9d205421cbb4e61db70.js (runtime) 12.7 kB [entry] [rendered]
chunk {scripts} scripts.9a46a0e28dae0f11bffb.js (scripts) 20.3 kB [entry] [rendered]
chunk {styles} styles.e8c91b6de63cbd1ef1be.js (styles) 624 kB [initial] [rendered]
chunk {vendor} vendor.eccdafeabbb649d68877.js (vendor) 4.77 MB [initial] [rendered]
Date: 2019-06-04T14:14:33.560Z - Hash: 1690109f67cb887a6d5d - Time: 34676ms
** Angular Live Development Server is listening on 0.0.0.0:80, open your browser on http://localhost:80/ **
i 「wdm」: Compiled successfully.
i 「wdm」: Compiling...

Date: 2019-06-04T14:14:53.336Z - Hash: 998791a06c755186a7dc
148 unchanged chunks
chunk {64} 64.0bf728d7fbcbba217b53.js () 36.2 kB  [rendered]
chunk {runtime} runtime.7381db3f14ba80dfec8f.js (runtime) 12.7 kB [entry] [rendered]
Time: 1411ms
i 「wdm」: Compiled successfully.
```
2019-06-14 09:50:29 -07:00
Renovate Bot
ebbfbd6ef9 build: update webpack to version 4.34.0 2019-06-13 11:42:45 -07:00
Ben Lesh
caeaa53e1a refactor: Add explict type to allow RxJS to be updated
While trying to sync RxJS into google3 an issue came up around the code in question, where TypeScript is unable to properly infer the type. Adding this explicit type resolves the issue.
2019-06-12 16:36:46 -07:00
Alan Agius
4ad0fb73c3 fix(@angular-devkit/build-angular): always disable buildOptimizer when extracting i18n 2019-06-12 14:54:15 -07:00
Alan Agius
32bae6dbd8 refactor: small refactor in AOT plugin file 2019-06-12 14:54:15 -07:00
Judy Bogart
23553d12eb docs: remove ref to apps in ng_packagr doc 2019-06-11 10:23:43 -07:00
Judy Bogart
dc117324ac docs: differentiate lib build from app build 2019-06-11 10:23:43 -07:00
Alan Agius
69e47c2249 fix(@angular-devkit/build-angular): browsers that partially support ES6 modules are being marked as not supported
`caniuse-api` only returns `true` for a feature when it's fully supported. This might causes redundant ES5 builds if users opt to support only browsers which do support ES6 modules but either require polyfills such as Safari 10.1 or when both bundles will be downloaded such as `Edge 18`

See: 1b74c10257/src/index.js (L49) and https://github.com/Nyalab/caniuse-api/issues/82

Fixes #14580
2019-06-11 09:55:03 -07:00
Alan Agius
1dd399c4d2 fix(@angular-devkit/build-angular): nomodule polyfill for Safari
10.1 and iOS Safari 10.3

The nomodule polyfill needs to be loaded prior to any script and be
outside of webpack compilation because otherwise webpack will cause the
script to be wrapped in `window["webpackJsonp"]` which causes it to
fail.

This polyfill will only be injected when the either Safari 10.1 or iOS
Safari 10.3 support is required, which is based on the browsers  defined in browserslist file.

Fixes #14680
2019-06-11 09:55:03 -07:00
Alan Agius
473b4c4a5a test: fix flakes of rebuilds TS worker
Not quite sure why such a long 'debounceTime' is needed anything under `2500` is a constant failure locally and this is also rather flaky on CI when it doesn't run as the first test.

It seems that the outputted files contents don't get updated in time.
2019-06-11 09:54:14 -07:00
Alan Agius
905f3acae8 build: update angular framework packages to next` 2019-06-11 09:52:56 -07:00
Alan Agius
53d027837e fix(@angular-devkit/architect): error out when invalid configurations are provided
Fixes #14654
2019-06-10 13:43:39 -07:00
Renovate Bot
eacacef848 build: update browserslist to version 4.6.2 2019-06-10 13:37:03 -07:00
Renovate Bot
30345c3499 build: update postcss to version 7.0.17 2019-06-07 13:33:09 -07:00
Filipe Silva
819892a359 ci: remove appveyor and buildkite 2019-06-06 16:02:17 -07:00
Renovate Bot
66a18defc2 build: update sass to version 1.21.0 2019-06-06 16:00:41 -07:00
Alan Agius
8828a7d271 fix(@angular-devkit/build-angular): re-order ES5 polyfills in karma HTMLs
Similar to the index HTML page (6ec09919b5/tests/legacy-cli/e2e/tests/misc/support-ie.ts (L30-L37)) ES5 polyfills should be loaded prior to the other polyfills. This is because other polyfills such as `zone.js` require these for example `Symbol` and `Object.isFrozen`

Fixes #14618
2019-06-06 14:32:20 -07:00
Renovate Bot
1648a67ff2 build: update file-loader to version 4.0.0 2019-06-06 14:29:24 -07:00
Renovate Bot
301b1fe8f4 build: update webpack to version 4.33.0 2019-06-06 14:27:27 -07:00
Alan
6893fc1cdd fix(@angular-devkit/build-angular): server build is generating un-needed polyfill file
Fixes #14655
2019-06-06 14:26:30 -07:00
Alan
e3bb367db1 fix(@ngtools/webpack): rebuilding project with errors reports cannot find .ts files in JIT
When the first build in JIT has an error we are not emitting files. This ends up causing an issue because subsequent builds only trigger partial emits of files and only emits the full set of files if the number of files changed is greater than 20.

This logic adds the behavior that we only enter the 'only 20 files' part when the previous build was successful.

Fixes #14644
2019-06-06 14:25:40 -07:00
Renovate Bot
195807141c build: update autoprefixer to version 9.6.0 2019-06-06 14:25:03 -07:00
Alan Agius
8d479c93d2 test: add test to verify that the new es2015 class wrapping logic handles wrapping of tslib and tsickle classes
Related to https://github.com/ngrx/platform/issues/1905 and https://github.com/ng-packagr/ng-packagr/issues/1307

Fixes #14613
2019-06-06 14:15:30 -07:00
Alan Agius
8104fce690 fix(@angular-devkit/build-optimizer): wrap ClassDeclarations in an IIFE for better treeshaking
With this change we wrap ClassDeclarations inside an IIFE, also we move some code from the class fold into the wrap-enums.

This changes the below code:
```js
export class Foo {
	method() {
	}
}
Foo.bar = 'barValue';
__decorate([
	methodDecorator
], Foo.prototype, "method", null);
```

to

```js
export const Foo = /*@__PURE__*/ (() => {
  class Foo {
    method() {
    }
  }
  Foo.bar = 'barValue';
  __decorate([
    methodDecorator
  ], Foo.prototype, "method", null);

  return Foo;
})();
```

Fixes #14610
2019-06-06 14:15:30 -07:00
Alan Agius
f5200775f9 fix(@angular-devkit/build-optimizer): wrap es2015 class expressions for better tree-shaking
ClassExpressions such as the below are not treeshakable unless we wrap them in an IIFE

```js
let AggregateColumnDirective = class AggregateColumnDirective {
	constructor(viewContainerRef) { }
};
AggregateColumnDirective = __decorate([
	Directive({}),
	__metadata("design:paramtypes", [ViewContainerRef])
], AggregateColumnDirective);
```

With this change we wrap the above in an IIFE and mark it as a PURE function.
```js
const AggregateColumnDirective = /*@__PURE__*/ (() => {
	let AggregateColumnDirective = class AggregateColumnDirective {
		constructor(viewContainerRef) { }
	};
	AggregateColumnDirective = __decorate([
		Directive({}),
		__metadata("design:paramtypes", [ViewContainerRef])
	], AggregateColumnDirective);

	return AggregateColumnDirective;
})();
```

With this pattern if the class is unused it will be dropped.

Note: In future we should rename `wrap-enums` to something more generic, and combine class-fold with this transformer especially considering the future fix that needs to be done for https://github.com/angular/angular-cli/issues/14610

Fixes #14577
2019-06-06 14:15:30 -07:00
Alan Agius
bebd8b6c09 refactor: use standard node resolution and use async/await instead of rxjs 2019-06-06 14:07:37 -07:00
Judy Bogart
7ef64dbe46 docs: more complete description 2019-06-06 14:06:53 -07:00
Judy Bogart
3ec845caf3 docs: make connection of live-reload and public-host explicit 2019-06-06 14:06:53 -07:00
Nick Webster
a976e45f8b fix(@angular-devkit/build-angular): exclude map files from 'bundle' budgets 2019-05-30 14:05:59 -07:00
Renovate Bot
e7419d5d24 build: update semver to version 6.1.1 2019-05-30 14:05:06 -07:00
Renovate Bot
559e7423be build: update browserslist to version 4.6.1 2019-05-30 14:04:52 -07:00
Charles Lyding
19ed795cb1 fix(@angular-devkit/architect): support all observable types as build results
Fixes #14579
2019-05-30 13:33:51 -07:00
Paul Gschwendtner
a57f053867 fix(@angular/cli): ng-update migrations not running with --migrate-only
With Angular CLI version 8, migrations cannot be re-run with the
`--migrate-only` flag as there was a recent regression introduced
in e406f00909 (diff-0d0a748fb9a38a7ccde08d9b42e70bce) as it now passes
a normalized platform path to the `engine.createCollection` call.

This breaks as there is incorrect logic within
`node-modules-engine-host` that causes the schematic collection to be
searched within the `package.json#schematics` entry. This is incorrect
as migration schematics specify their migration schematics in a separate
schematic collection file which is part of `package.json#ng-update`.

Fixes #14565
2019-05-30 10:19:16 -07:00
Alan Agius
c70cf991ac refactor(@angular-devkit/architect): remove index2 from testing folder 2019-05-28 21:00:29 +02:00
Renovate Bot
80c7479bbf build: update mini-css-extract-plugin to version 0.7.0 2019-05-28 20:53:05 +02:00
Renovate Bot
c1cb92ff6b build: update core-js to version 3.1.3 2019-05-28 20:52:45 +02:00
Renovate Bot
bf7c4aadbe build: update terser-webpack-plugin to version 1.3.0 2019-05-28 20:52:15 +02:00
Renovate Bot
5df02a3de5 build: update webpack to version 4.32.2 2019-05-23 19:16:49 +02:00