-
Notifications
You must be signed in to change notification settings - Fork 12k
Differential Loading via Bundle Downleveling #15246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
...ngular_devkit/build_angular/src/angular-cli-files/utilities/index-file/augment-index-html.ts
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/utils/webpack-browser-config.ts
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/utils/process-bundle.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/utils/process-bundle.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/utils/process-bundle.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/utils/process-bundle.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mainly NITS.
The main issues that I saw were;
- Hidden sourcemaps are not handled as a reference is always added in the bundle.
- vendorSourceMaps seem to broken as well for ES5.
- Scripts are not being optimised for ES5 which might cause them to break on IE. (left some more info in one of the above comments)
- Maybe show a message that something is happening, as it's quite misleading to not to have the terminal available after the stats have been emitted.
fbd239c
to
94017ae
Compare
Closes angular#13228 It is currently unused and requires an old version of the `source-map` package. This old version conflicts with the use of newer versions that are required to provide the necessary functionality and performance within the published packages.
…e-map version (0.7.3) The latest version provides significant performance improvements.
…based on babel usage analysis
94017ae
to
0eccdad
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really happy with this! Well done!
…ing to support differential loading
0eccdad
to
3e36529
Compare
@alan-agius4 , this one need to wait for angular/angular#32016, because currently loading |
@JiaLiPassion All the browser tests are passing without that PR. When is this error occurring? Chrome 41, Safari 9, Firefox 48, IE 10, IE 11, and Edge 14 are all tested and are using zone legacy. |
@clydin, this error should occur when |
It's loaded before evergreen but they are bundled together. Just tried it locally and there is no error. Also added a console log statement inside the legacy registerElement patch function and it was executed. |
Also, looking at the code for 0.9.1, there shouldn't be an issue there.
|
@clydin, oh, got it, now the repo is still using old version of |
No problem. Thanks for the info on the latest version though. The CLI cannot use anything past 0.9.x until |
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
This change removes the requirement to perform two full builds of the application to create a differential loaded application. Instead only the ES2015 application is built and then the resulting application bundles are then downleveled directly. This has the advantage of reducing the build time as well as a small size improvement in the ES5 bundles. Lazy loaded bundles are also consistently named between the ES2015 and ES5 bundles. Speed improvements range from 10% to 50% with larger applications benefiting the most.
The existing behavior is currently retained via the use of the
NG_BUILD_DIFFERENTIAL_FULL
environment variable. The existing behavior is available at this point in time to ensure that any unknown problematic edge cases within the new build pipeline will not cause existing applications to fail to build.