110 Commits

Author SHA1 Message Date
Alex Eagle
00497437a6 fix(bazel): don't inline tslib into fesms ()
PR Close 
2018-03-28 10:19:14 -07:00
Alex Eagle
0b348c8ffe build: fix bazel stamping ()
As pointed out in https://github.com/bazelbuild/rules_nodejs/issues/156
our mechanism would never pick up changes to the version info.

PR Close 
2018-03-28 09:00:02 -07:00
Alex Eagle
689f351092 build: expose flatModuleOutFile option on ng_module ()
This lets projects like Material change ng_package "bundle index" files to non-conflicting paths

Currently packages like @angular/core ship with the generated metadata
in a path like 'core.js' which overwrites one of the inputs.

Angular material puts the generated file in a path like 'index.js'

Either way these files generated by ng_module rules have the potential
to collide with inputs given by the user, which results in an error.

Instead, give users the freedom to choose a different non-conflicting name.

Also this refactors the ng_package rule, removing the redundant
secondary_entry_points attribute.

Instead, we assume that any ng_module in the deps with a module_name
attribute is a secondary entry point.

PR Close 
2018-03-20 13:28:57 -07:00
Alex Rickabaugh
6ef9f2278f feat(ivy): @NgModule -> ngInjectorDef compilation ()
This adds compilation of @NgModule providers and imports into
ngInjectorDef statements in generated code. All @NgModule annotations
will be compiled and the @NgModule decorators removed from the
resultant js output.

All @Injectables will also be compiled in Ivy mode, and the decorator
removed.

PR Close 
2018-03-16 12:57:11 -07:00
Alex Eagle
f9247e4b2e build: enable importHelpers in tsconfig ()
This is the primary tsconfig file used for Bazel builds.
Previously, we enabled this option only for releases.

PR Close 
2018-03-15 21:16:03 -07:00
Alex Eagle
88b3198c80 feat(bazel): change ng_package rule to APF v6 ()
Angular Package Format v6 stops bundling files in the esm5 and esm2015
directories, now that Webpack 4 can tree-shake per-file.

Adds some missing files like package.json to make packages closer to
what we publish today.

Refactor ng_package to be a type of npm_package and re-use the packaging
action from that rule.

PR Close 
2018-03-15 11:38:31 -07:00
Alex Eagle
b43b164a61 feat(bazel): add an ng_package rule ()
This produces a directory following the Angular Package layout spec.

Includes integration test coverage by making a minimal ng_package in integration/bazel.
Unit tests verify the content of the @angular/core and @angular/common packages.

This doesn't totally match our current output, but is good enough to unblock some
early adopters.

It re-uses logic from the rollup_bundle rule in rules_nodejs. It should also
eventually have the .pack and .publish secondary targets like npm_package rule.

PR Close 
2018-02-23 11:19:04 -08:00
Alex Eagle
a069e08354 refactor(bazel): convert most ts_library to ng_module ()
This is necessary so we can produce ng metadata for our packages that are published as libraries

PR Close 
2018-02-15 14:08:53 -08:00
Alex Eagle
a1492a73ce build: Remove angular_src nested workspace ()
PR Close 
2018-01-19 10:17:37 -08:00
Alex Eagle
c4f02e21dd build: move repeated tsconfig attributes to a macro ()
This helps ensure we use the same tsconfig.json file for all compilations.
Next steps are to make it the same tsconfig.json file used by the editor

PR Close 
2018-01-10 12:30:19 -08:00