Skip to content

Commit

Permalink
fix(zone.js): should have better backward compatibilities
Browse files Browse the repository at this point in the history
Close angular#38561, angular#38669

zone.js 0.11.1 introduces a breaking change to adpat Angular package format,
and it breaks the module loading order, before 0.11, in IE11, the `zone.js` es5
format bundle will be imported, but after 0.11, the `fesm2015` format bundle will
be imported, which will cause error.

And since the only purpose of the `dist` folder of zone.js bundles is to keep backward
 compatibility, in the original commit, I use package redirect to implement that, but
it is not fully backward compatible, we should keep the same dist structure as `0.10.3`.
  • Loading branch information
JiaLiPassion committed Sep 12, 2020
1 parent 6768fe9 commit 39ca4a8
Show file tree
Hide file tree
Showing 76 changed files with 260 additions and 691 deletions.
183 changes: 110 additions & 73 deletions packages/zone.js/dist/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,80 +1,117 @@
package(default_visibility = ["//visibility:public"])

load("//packages/zone.js/dist:tools.bzl", "copy_es2015_to_dist", "copy_es5_to_dist")

copy_es2015_to_dist()

copy_es5_to_dist()

genrule(
name = "zone_externs",
srcs = ["//packages/zone.js:zone_externs"],
outs = ["zone_externs.js"],
cmd = "cp $< $@",
)

genrule(
name = "zone_extensions_d_ts",
srcs = ["//packages/zone.js:zone_extensions_d_ts"],
outs = ["zone.api.extensions.ts"],
cmd = "cp $< $@",
)

genrule(
name = "zone_configurations_d_ts",
srcs = ["//packages/zone.js:zone_configurations_d_ts"],
outs = ["zone.configurations.api.ts"],
cmd = "cp $< $@",
)

genrule(
name = "zone_js_d_ts",
srcs = ["//packages/zone.js:zone_js_d_ts"],
outs = ["zone.js.d.ts"],
cmd = "cp $< $@",
)

filegroup(
name = "dist_bundle_group",
srcs = [
"//packages/zone.js/dist:async-test.min/package.json",
"//packages/zone.js/dist:async-test/package.json",
"//packages/zone.js/dist:fake-async-test.min/package.json",
"//packages/zone.js/dist:fake-async-test/package.json",
"//packages/zone.js/dist:jasmine-patch.min/package.json",
"//packages/zone.js/dist:jasmine-patch/package.json",
"//packages/zone.js/dist:long-stack-trace-zone.min/package.json",
"//packages/zone.js/dist:long-stack-trace-zone/package.json",
"//packages/zone.js/dist:mocha-patch.min/package.json",
"//packages/zone.js/dist:mocha-patch/package.json",
"//packages/zone.js/dist:proxy.min/package.json",
"//packages/zone.js/dist:proxy/package.json",
"//packages/zone.js/dist:sync-test.min/package.json",
"//packages/zone.js/dist:sync-test/package.json",
"//packages/zone.js/dist:task-tracking.min/package.json",
"//packages/zone.js/dist:task-tracking/package.json",
"//packages/zone.js/dist:webapis-media-query.min/package.json",
"//packages/zone.js/dist:webapis-media-query/package.json",
"//packages/zone.js/dist:webapis-notification.min/package.json",
"//packages/zone.js/dist:webapis-notification/package.json",
"//packages/zone.js/dist:webapis-rtc-peer-connection.min/package.json",
"//packages/zone.js/dist:webapis-rtc-peer-connection/package.json",
"//packages/zone.js/dist:webapis-shadydom.min/package.json",
"//packages/zone.js/dist:webapis-shadydom/package.json",
"//packages/zone.js/dist:wtf.min/package.json",
"//packages/zone.js/dist:wtf/package.json",
"//packages/zone.js/dist:zone.min/package.json",
"//packages/zone.js/dist:zone-bluebird.min/package.json",
"//packages/zone.js/dist:zone-bluebird/package.json",
"//packages/zone.js/dist:zone-error.min/package.json",
"//packages/zone.js/dist:zone-error/package.json",
"//packages/zone.js/dist:zone-evergreen.min/package.json",
"//packages/zone.js/dist:zone-evergreen-testing-bundle.min/package.json",
"//packages/zone.js/dist:zone-evergreen-testing-bundle/package.json",
"//packages/zone.js/dist:zone-evergreen/package.json",
"//packages/zone.js/dist:zone-legacy.min/package.json",
"//packages/zone.js/dist:zone-legacy/package.json",
"//packages/zone.js/dist:zone-mix.min/package.json",
"//packages/zone.js/dist:zone-mix/package.json",
"//packages/zone.js/dist:zone-node.min/package.json",
"//packages/zone.js/dist:zone-node/package.json",
"//packages/zone.js/dist:zone-patch-canvas.min/package.json",
"//packages/zone.js/dist:zone-patch-canvas/package.json",
"//packages/zone.js/dist:zone-patch-cordova.min/package.json",
"//packages/zone.js/dist:zone-patch-cordova/package.json",
"//packages/zone.js/dist:zone-patch-electron.min/package.json",
"//packages/zone.js/dist:zone-patch-electron/package.json",
"//packages/zone.js/dist:zone-patch-fetch.min/package.json",
"//packages/zone.js/dist:zone-patch-fetch/package.json",
"//packages/zone.js/dist:zone-patch-jsonp.min/package.json",
"//packages/zone.js/dist:zone-patch-jsonp/package.json",
"//packages/zone.js/dist:zone-patch-message-port.min/package.json",
"//packages/zone.js/dist:zone-patch-message-port/package.json",
"//packages/zone.js/dist:zone-patch-promise-test.min/package.json",
"//packages/zone.js/dist:zone-patch-promise-test/package.json",
"//packages/zone.js/dist:zone-patch-resize-observer.min/package.json",
"//packages/zone.js/dist:zone-patch-resize-observer/package.json",
"//packages/zone.js/dist:zone-patch-rxjs.min/package.json",
"//packages/zone.js/dist:zone-patch-rxjs-fake-async.min/package.json",
"//packages/zone.js/dist:zone-patch-rxjs-fake-async/package.json",
"//packages/zone.js/dist:zone-patch-rxjs/package.json",
"//packages/zone.js/dist:zone-patch-socket-io.min/package.json",
"//packages/zone.js/dist:zone-patch-socket-io/package.json",
"//packages/zone.js/dist:zone-patch-user-media.min/package.json",
"//packages/zone.js/dist:zone-patch-user-media/package.json",
"//packages/zone.js/dist:zone-testing.min/package.json",
"//packages/zone.js/dist:zone-testing-bundle.min/package.json",
"//packages/zone.js/dist:zone-testing-bundle/package.json",
"//packages/zone.js/dist:zone-testing-node-bundle.min/package.json",
"//packages/zone.js/dist:zone-testing-node-bundle/package.json",
"//packages/zone.js/dist:zone-testing/package.json",
"//packages/zone.js/dist:zone/package.json",
"//packages/zone.js/dist:zone_externs/package.json",
":async-test.js",
":async-test.min.js",
":fake-async-test.js",
":fake-async-test.min.js",
":jasmine-patch.js",
":jasmine-patch.min.js",
":long-stack-trace-zone.js",
":long-stack-trace-zone.min.js",
":mocha-patch.js",
":mocha-patch.min.js",
":proxy.js",
":proxy.min.js",
":sync-test.js",
":sync-test.min.js",
":task-tracking.js",
":task-tracking.min.js",
":webapis-media-query.js",
":webapis-media-query.min.js",
":webapis-notification.js",
":webapis-notification.min.js",
":webapis-rtc-peer-connection.js",
":webapis-rtc-peer-connection.min.js",
":webapis-shadydom.js",
":webapis-shadydom.min.js",
":wtf.js",
":wtf.min.js",
":zone.js",
":zone.min.js",
":zone-bluebird.js",
":zone-bluebird.min.js",
":zone-error.js",
":zone-error.min.js",
":zone-evergreen.js",
":zone-evergreen.min.js",
":zone-evergreen-testing-bundle.js",
":zone-evergreen-testing-bundle.min.js",
":zone-legacy.js",
":zone-legacy.min.js",
":zone-mix.js",
":zone-mix.min.js",
":zone-node.js",
":zone-node.min.js",
":zone-patch-canvas.js",
":zone-patch-canvas.min.js",
":zone-patch-cordova.js",
":zone-patch-cordova.min.js",
":zone-patch-electron.js",
":zone-patch-electron.min.js",
":zone-patch-fetch.js",
":zone-patch-fetch.min.js",
":zone-patch-jsonp.js",
":zone-patch-jsonp.min.js",
":zone-patch-message-port.js",
":zone-patch-message-port.min.js",
":zone-patch-promise-test.js",
":zone-patch-promise-test.min.js",
":zone-patch-resize-observer.js",
":zone-patch-resize-observer.min.js",
":zone-patch-rxjs.js",
":zone-patch-rxjs.min.js",
":zone-patch-rxjs-fake-async.js",
":zone-patch-rxjs-fake-async.min.js",
":zone-patch-socket-io.js",
":zone-patch-socket-io.min.js",
":zone-patch-user-media.js",
":zone-patch-user-media.min.js",
":zone-testing.js",
":zone-testing.min.js",
":zone-testing-bundle.js",
":zone-testing-bundle.min.js",
":zone-testing-node-bundle.js",
":zone-testing-node-bundle.min.js",
":zone_configurations_d_ts",
":zone_extensions_d_ts",
":zone_externs",
":zone_js_d_ts",
],
)
7 changes: 0 additions & 7 deletions packages/zone.js/dist/async-test.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/async-test/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/fake-async-test.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/fake-async-test/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/jasmine-patch.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/jasmine-patch/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/long-stack-trace-zone.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/long-stack-trace-zone/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/mocha-patch.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/mocha-patch/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/proxy.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/proxy/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/sync-test.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/sync-test/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/task-tracking.min/package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/zone.js/dist/task-tracking/package.json

This file was deleted.

71 changes: 71 additions & 0 deletions packages/zone.js/dist/tools.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
ES5_BUNDLES = [
"zone",
"zone-mix",
"zone-node",
"zone-testing-node-bundle",
"async-test",
"fake-async-test",
"long-stack-trace-zone",
"proxy",
"zone-patch-rxjs-fake-async",
"sync-test",
"task-tracking",
"wtf",
"zone-error",
"zone-legacy",
"zone-bluebird",
"zone-patch-canvas",
"zone-patch-cordova",
"zone-patch-electron",
"zone-patch-fetch",
"jasmine-patch",
"zone-patch-jsonp",
"webapis-media-query",
"mocha-patch",
"webapis-notification",
"zone-patch-promise-test",
"zone-patch-resize-observer",
"webapis-rtc-peer-connection",
"zone-patch-rxjs",
"webapis-shadydom",
"zone-patch-socket-io",
"zone-patch-user-media",
"zone-patch-message-port",
"zone-testing",
"zone-testing-bundle",
]

ES2015_BUNDLES = {
"zone-evergreen": "//packages/zone.js/fesm2015:zone",
"zone-evergreen-testing-bundle": "//packages/zone.js/fesm2015:zone-testing-bundle",
}

def copy_es5_to_dist():
for b in ES5_BUNDLES:
native.genrule(
name = "zone_copy_" + b,
srcs = ["//packages/zone.js/bundles:" + b + ".umd.js"],
outs = [b + ".js"],
cmd = "cp $< $@",
)
native.genrule(
name = "zone_copy_min_" + b,
srcs = ["//packages/zone.js/bundles:" + b + ".umd.min.js"],
outs = [b + ".min.js"],
cmd = "cp $< $@",
)

def copy_es2015_to_dist():
for b in ES2015_BUNDLES.items():
native.genrule(
name = "zone_copy_" + b[0],
srcs = [b[1] + ".js"],
outs = [b[0] + ".js"],
cmd = "cp $< $@",
)
native.genrule(
name = "zone_copy_min_" + b[0],
srcs = [b[1] + ".min.js"],
outs = [b[0] + ".min.js"],
cmd = "cp $< $@",
)
7 changes: 0 additions & 7 deletions packages/zone.js/dist/webapis-media-query.min/package.json

This file was deleted.

0 comments on commit 39ca4a8

Please sign in to comment.