36 Commits

Author SHA1 Message Date
Charles Lyding
00ca690807 refactor(@angular/cli): centralize ES2015 support checks 2017-11-02 16:21:21 -04:00
Sarun Intaralawan
082c570b62 fix(@angular/cli): use RxJS ES2015 path alias when targeting ES2015 2017-10-29 11:46:39 -07:00
Filipe Silva
d8fcb122e9 fix(@angular/cli): support rxjs 5.5 path alias
Blocked by an answer to https://github.com/ReactiveX/rxjs/issues/2979.

Fix #8096
2017-10-19 14:59:12 -07:00
Filipe Silva
7f6a2f8450 fix(@angular/cli): don't drop resource extentions
Fix #8099
2017-10-19 14:50:26 -07:00
Filipe Silva
62c858c39a fix(@angular/cli): update file-loader and url-loader
This should fix errors like the one below for 0.6.0:
```
URL Loader Invalid Options

options['name'] should NOT have additional properties
options.limit should be number
```
2017-10-18 12:26:05 -07:00
Filipe Silva
08b284ec62 feat(@angular/cli): use eval-source-map for serve on dev targets 2017-10-05 13:15:30 -04:00
Hans Larsen
aa02086d02 feat(@angular/cli): add a bundle dependencies flag
This flag allows people who know what theyre doing to bundle the
server build together with all dependencies. It should only be
used when the whole rendering process is part of the main.ts
or one of its dependencies.

Fixes #7903.
2017-10-05 09:56:11 -07:00
Charles Lyding
206064a399 fix(@angular/cli): ensure asset output is within the output path 2017-09-25 11:43:09 +01:00
Filipe Silva
939cd6c02d feat(@ngtools/webpack): add AngularCompilerPlugin 2017-09-13 16:21:16 -07:00
Filipe Silva
dea04b1d57 feat(@angular/cli): support ES2015 target 2017-09-13 12:26:00 -07:00
Filipe Silva
38a7ab47c6 fix(@angular/cli): fix asset watching
https://github.com/kevlened/copy-webpack-plugin is now used instead of the custom plugin, it has since implemented the features we needed.

Fix #7521
2017-09-05 21:45:19 +01:00
Filipe Silva
e8f27f029a feat(@angular/cli): support sourcemaps and minification in scripts
Adds sourcemap and minification to javascript added via the `scripts` array in `.angular-cli.json`.

`script-loader` is no longer used, which should help with CSP since it used `eval`.

Scripts will no longer appear in the console output for `ng build`, as they are now assets instead of webpack entry points.

It's no longer possible to have the `output` property of both a `scripts` and a `styles` entry pointing to the same file. This wasn't officially supported or listed in the docs, but used to be possible.

Fix #2796
Fix #7226
Fix #7290

Related to #6872
2017-08-17 16:38:35 -04:00
Charles Lyding
0888e82422 fix(@angular/cli): standardize output path behavior 2017-07-31 13:58:48 +01:00
Charles Lyding
a329014ddb fix(@angular/cli): prevent .cur file inlining
IE does not support data URI cursors.
2017-07-26 21:11:17 +01:00
Charles Lyding
bf55bfd044 fix(@angular/cli): remove deprecated json-loader 2017-07-26 21:10:57 +01:00
Filipe Silva
826c634090 feat(@angular/cli): add flag to control chunk naming
Followup to #6881

Allow controlling chunk naming via the `--named-chunks` flag, which can be set on `.angular-cli.json` as well.

Defaults to true in development, false in production.
2017-07-19 13:53:07 -04:00
Filipe Silva
9ec5b4ed66 feat(@angular/cli): add build-optimizer support
Adds the new flag `--build-optimizer` (`--bo`), usable only with `--aot` (or `--prod` since it auto enables `--aot`).

This feature is experimental, and may not work correctly on your project. Should it work, total bundle size should go down. Savings are heavily dependent on the project.

See https://github.com/angular/devkit/tree/master/packages/angular_devkit/build_optimizer for details about all the optimizations applied.

Usage: `ng build --prod --build-optimizer`. Disabling the vendor chunk has been shown to improve total savings, and is done automatically when `--bo` is specified unless `--vendor-chunk` has a value.

Please let us know if using `--build-optimizer` breaks your project so we can improve it further. Repos are very welcome.
2017-07-19 12:27:23 -04:00
Filipe Silva
fe85750cb7 feat(@angular/cli): add scope hoisting via webpack 3
This should result in significant bundle size reduction. For best results, build for production with `--vendor-chunk=false`.

See https://medium.com/webpack/webpack-3-official-release-15fd2dd8f07b for details.
2017-07-10 16:59:08 -07:00
Filipe Silva
2780c3d7ab fix(@angular/cli): use inline sourcemaps in test
Fix #6737
2017-07-05 18:47:51 -07:00
Filipe Silva
5a0e80ffd3 feat(@angular/cli): name lazy chunks
Before:
```
$ ng build --no-progress
Hash: ff03df269349b817eef4
Time: 11202ms
chunk    {0} 0.chunk.js, 0.chunk.js.map 1.61 kB {1} {3} [rendered]
chunk    {1} 1.chunk.js, 1.chunk.js.map 1.46 kB {0} {3} [rendered]
chunk    {2} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 160 kB {6} [initial] [rendered]
chunk    {3} main.bundle.js, main.bundle.js.map (main) 6.38 kB {5} [initial] [rendered]
chunk    {4} styles.bundle.js, styles.bundle.js.map (styles) 10.5 kB {6} [initial] [rendered]
chunk    {5} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.16 MB [initial] [rendered]
chunk    {6} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]
```

After:
```
$ ng build --no-progress
Hash: 2bc12a89f40f3b4818b5
Time: 9613ms
chunk {feature.module} feature.module.chunk.js, feature.module.chunk.js.map 1.46 kB {lazy.module} {main} [rendered]
chunk {inline} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]
chunk {lazy.module} lazy.module.chunk.js, lazy.module.chunk.js.map 1.61 kB {feature.module} {main} [rendered]
chunk {main} main.bundle.js, main.bundle.js.map (main) 6.38 kB {vendor} [initial] [rendered]
chunk {polyfills} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 160 kB {inline} [initial] [rendered]
chunk {styles} styles.bundle.js, styles.bundle.js.map (styles) 10.5 kB {inline} [initial] [rendered]
chunk {vendor} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.16 MB [initial] [rendered]
```

Fix #6700
2017-07-05 14:50:52 -07:00
Filipe Silva
28e4114785 feat(@angular/cli): followup changes to circular dependency detection
Flag is now positive instead of negative and shorter, and can now be set on commands as well (`--show-circular-dependencies`).

Dependency was also added to eject as per https://github.com/angular/angular-cli/pull/6813#issuecomment-311567074.
2017-06-29 11:18:39 -07:00
Filipe Silva
1f3738b19f feat(@angular/cli): add circular dependency detection
Circular dependencies, like `app.module.ts` importing `app.component.ts` which in turn imports `app.module.ts`, now display a warning during builds:

```
kamik@T460p MINGW64 /d/sandbox/master-project (master)
$ ng build
Hash: 3516b252f4e32d6c5bb8
Time: 8693ms
chunk    {0} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 160 kB {4} [initial] [rendered]
chunk    {1} main.bundle.js, main.bundle.js.map (main) 5.95 kB {3} [initial] [rendered]
chunk    {2} styles.bundle.js, styles.bundle.js.map (styles) 10.5 kB {4} [initial] [rendered]
chunk    {3} vendor.bundle.js, vendor.bundle.js.map (vendor) 1.88 MB [initial] [rendered]
chunk    {4} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]

WARNING in Circular dependency detected:
src\app\app.module.ts -> src\app\app.component.ts -> src\app\app.module.ts

WARNING in Circular dependency detected:
src\app\app.component.ts -> src\app\app.module.ts -> src\app\app.component.ts
```

It is important to detect and eliminate circular dependencies because leaving them in might lead to `Maximum call stack size exceeded` errors, or imports being `undefined` at runtime.

To remove these warnings from your project you can factor out the circular dependency into a separate module.

For instance, if module A imports `foo` from module B, and module B imports `bar` from module A, it is enough to extract `foo` into module C.

You can turn off these warnings by running ng set apps.0.hideCircularDependencyWarnings=true. This will add the "hideCircularDependencyWarnings": true value to your .angular-cli.json and disable the warnings.

Fix #6309
Fix #6739
2017-06-27 16:30:30 +01:00
Charles Lyding
bd0dac11aa fix(@angular/cli): correct sourcemap source paths 2017-06-15 13:50:35 -04:00
Gleb Gusachenko
407625ca90 feat(@angular/cli): support loading webp images (#6594)
Fix #6526
2017-06-07 18:42:34 +01:00
Charles Lyding
af3e6b22f4 feat(@angular/cli): add option to preserve symlinks for module resolution 2017-06-01 11:47:19 +01:00
Douglas Duteil
be7a7162eb fix(@angular/cli): resolve in all available node_modules
When @angular/cli dependencies (like @ngtool/webpack for example) are installed in its node_modules (as node_modules/@angular/cli/node_modules for example) webpack isn't seeing them.
2017-05-31 13:07:03 -07:00
clydin
e0a454ffc2 fix(@angular/cli): enable full node module resolution for project deps (#6276) 2017-05-15 17:46:05 -04:00
Hans Larsen
d94040b2de fix(@angular/cli): sourcemaps should be the main option, sourcemap an alias 2017-03-14 15:32:00 -07:00
Filipe Silva
3bba4cb4da feat(@angular/cli): use same webpack config for karma
Close #4851
Fix #3605
Fix #4850
Fix #4876
2017-02-22 11:54:06 +00:00
Filipe Silva
d1e13ace0b build: use noUnusedParameters, noUnusedLocals (#4882) 2017-02-21 10:53:34 -08:00
Filipe Silva
78313b3148 fix(@angular/cli): use default .map filename (#4742)
Fix #4741

BREAKING CHANGE: sourcemaps now are always [filename].map (e.g `main.bundle.js.map` instead of `main.bundle.map`).
2017-02-16 17:01:43 -08:00
Hans Larsen
f3c3874a47
refactor: removed unused import 2017-02-16 16:52:02 -08:00
Vyacheslav Chub
85bc88a603
fixed(webpack): support for cur and ani cursor files
Closes #2733
Closes #4305
2017-02-07 17:48:29 -08:00
Hans
2797a8965c fix(@angular/cli): add environment file to compilerHost (#4475)
Fixes #4375
2017-02-07 17:46:39 -08:00
Hans
c889dd8e94 refactor(@angular-cli): get rid of ast-tools and base-href-webpack (#4411)
Those 2 packages were still using the wrong scope (@angular-cli) and were not used by anyone outside the CLI. Just moving the code in the main package is enough.
2017-02-03 22:57:42 -08:00
Hans
601f9b38f8 feat(@angular/cli): move angular-cli to @angular/cli (#4328)
This release is otherwise identical to beta.28.
2017-02-01 18:19:50 -08:00