Skip to content

Commit 25aae64

Browse files
gregmagolanIgorMinar
authored andcommitted
build(bazel): do not build rxjs from source under Bazel (angular#28720)
PR Close angular#28720
1 parent eb39633 commit 25aae64

File tree

105 files changed

+366
-146
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+366
-146
lines changed

WORKSPACE

-9
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,6 @@ http_archive(
1919
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.18.6/rules_nodejs-0.18.6.tar.gz"],
2020
)
2121

22-
# Fetch the rxjs repository since we build rxjs from source
23-
# TODO(gregmagolan): use rxjs bundles in the bazel build
24-
http_archive(
25-
name = "rxjs",
26-
sha256 = "72b0b4e517f43358f554c125e40e39f67688cd2738a8998b4a266981ed32f403",
27-
strip_prefix = "package/src",
28-
url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz",
29-
)
30-
3122
# Use a mock @npm repository while we are building angular from source
3223
# downstream. Angular will get its npm dependencies with in @ngdeps which
3324
# is setup in ng_setup_workspace().

integration/bazel-schematics/package.json.replace

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"@angular/platform-browser-dynamic": "file:../angular/dist/packages-dist/platform-browser-dynamic",
2121
"@angular/router": "file:../angular/dist/packages-dist/router",
2222
"core-js": "^2.5.4",
23-
"rxjs": "~6.3.3",
23+
"rxjs": "~6.4.0",
2424
"tslib": "^1.9.0",
2525
"zone.js": "~0.8.26"
2626
},

integration/bazel/WORKSPACE

-9
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,6 @@ local_repository(
2424
path = "../..",
2525
)
2626

27-
# Fetch the rxjs repository since we build rxjs from source
28-
# TODO(gregmagolan): use rxjs bundles in the Bazel build
29-
http_archive(
30-
name = "rxjs",
31-
sha256 = "72b0b4e517f43358f554c125e40e39f67688cd2738a8998b4a266981ed32f403",
32-
strip_prefix = "package/src",
33-
url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz",
34-
)
35-
3627
# Check the bazel version and download npm dependencies
3728
load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories", "yarn_install")
3829

integration/bazel/src/BUILD.bazel

+29-23
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("@angular//:index.bzl", "ng_module")
4+
load("@build_bazel_rules_nodejs//:defs.bzl", "http_server", "nodejs_binary", "rollup_bundle")
5+
load("@build_bazel_rules_nodejs//internal/web_package:web_package.bzl", "web_package")
6+
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
47

58
# Allow targets under sub-packages to reference the tsconfig.json file
69
exports_files(["tsconfig.json"])
@@ -14,29 +17,34 @@ ng_module(
1417
"@npm//@angular/core",
1518
"@npm//@angular/platform-browser",
1619
"@npm//@types",
20+
"@npm//rxjs",
1721
],
1822
)
1923

20-
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
24+
filegroup(
25+
name = "rxjs_umd_modules",
26+
srcs = [
27+
# do not sort
28+
"@npm//node_modules/rxjs:bundles/rxjs.umd.js",
29+
":rxjs_shims.js",
30+
],
31+
)
2132

2233
ts_devserver(
2334
name = "devserver",
24-
additional_root_paths = [
25-
"npm/node_modules/tslib",
26-
"npm/node_modules/zone.js/dist",
27-
],
2835
entry_module = "bazel_integration_test/src/main",
36+
index_html = "index.html",
2937
scripts = [
3038
"@npm//node_modules/@angular/common:bundles/common.umd.js",
3139
"@npm//node_modules/@angular/common:bundles/common-http.umd.js",
3240
"@npm//node_modules/@angular/core:bundles/core.umd.js",
3341
"@npm//node_modules/@angular/platform-browser:bundles/platform-browser.umd.js",
42+
"@npm//node_modules/tslib:tslib.js",
43+
":rxjs_umd_modules",
3444
],
3545
serving_path = "/bundle.min.js",
3646
static_files = [
37-
"@npm//node_modules/tslib:tslib.js",
3847
"@npm//node_modules/zone.js:dist/zone.min.js",
39-
"index.html",
4048
],
4149
deps = [
4250
"//src",
@@ -46,8 +54,6 @@ ts_devserver(
4654
],
4755
)
4856

49-
load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary", "rollup_bundle")
50-
5157
rollup_bundle(
5258
name = "bundle",
5359
entry_point = "src/main",
@@ -56,25 +62,25 @@ rollup_bundle(
5662
"@npm//@angular/common",
5763
"@npm//@angular/core",
5864
"@npm//@angular/platform-browser",
65+
"@npm//rxjs",
5966
],
6067
)
6168

62-
# Needed because the prodserver only loads static files that appear under this
63-
# package.
64-
genrule(
65-
name = "zone.js",
66-
srcs = ["@npm//node_modules/zone.js:dist/zone.min.js"],
67-
outs = ["zone.min.js"],
68-
cmd = "cp $< $@",
69+
web_package(
70+
name = "prodapp",
71+
assets = [
72+
# do not sort
73+
"@npm//node_modules/zone.js:dist/zone.min.js",
74+
":bundle.min.js",
75+
],
76+
data = [
77+
":bundle",
78+
],
79+
index_html = "index.html",
6980
)
7081

71-
load("@build_bazel_rules_nodejs//:defs.bzl", "http_server")
72-
7382
http_server(
7483
name = "prodserver",
75-
data = [
76-
"index.html",
77-
":bundle",
78-
":zone.js",
79-
],
84+
data = [":prodapp"],
85+
templated_args = ["src/prodapp"],
8086
)

integration/bazel/src/hello-world/BUILD.bazel

+1-3
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ ts_web_test_suite(
6969
],
7070
deps = [
7171
":test_lib",
72-
# This will be removed with https://github.com/angular/angular/pull/28720. This is the
73-
# only remaining dependency that we still build from source here.
74-
"@rxjs",
72+
"//src:rxjs_umd_modules",
7573
],
7674
)

integration/bazel/src/index.html

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
<html>
44
<head>
55
<title>Bazel Integration Test</title>
6+
<base href="/">
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
68
</head>
79
<body>
10+
<!-- The Angular application will be bootstrapped into this element. -->
811
<app-component></app-component>
9-
<script src="/zone.min.js"></script>
10-
<script src="/bundle.min.js"></script>
1112
</body>
1213
</html>

integration/bazel/src/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"@angular/platform-browser": "file:../angular/dist/packages-dist/platform-browser",
1111
"@angular/platform-browser-dynamic": "file:../angular/dist/packages-dist/platform-browser-dynamic",
1212
"reflect-metadata": "0.1.12",
13-
"rxjs": "6.3.3",
13+
"rxjs": "6.4.0",
1414
"tslib": "1.9.3",
1515
"zone.js": "0.8.26"
1616
},

integration/bazel/src/rxjs_shims.js

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* @license
3+
* Copyright Google Inc. All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
// rxjs/operators
10+
(function(factory) {
11+
if (typeof module === 'object' && typeof module.exports === 'object') {
12+
var v = factory(require, exports);
13+
if (v !== undefined) module.exports = v;
14+
} else if (typeof define === 'function' && define.amd) {
15+
define('rxjs/operators', ['exports', 'rxjs'], factory);
16+
}
17+
})(function(exports, rxjs) {
18+
'use strict';
19+
Object.keys(rxjs.operators).forEach(function(key) { exports[key] = rxjs.operators[key]; });
20+
Object.defineProperty(exports, '__esModule', {value: true});
21+
});
22+
23+
// rxjs/testing
24+
(function(factory) {
25+
if (typeof module === 'object' && typeof module.exports === 'object') {
26+
var v = factory(require, exports);
27+
if (v !== undefined) module.exports = v;
28+
} else if (typeof define === 'function' && define.amd) {
29+
define('rxjs/testing', ['exports', 'rxjs'], factory);
30+
}
31+
})(function(exports, rxjs) {
32+
'use strict';
33+
Object.keys(rxjs.testing).forEach(function(key) { exports[key] = rxjs.testing[key]; });
34+
Object.defineProperty(exports, '__esModule', {value: true});
35+
});

modules/benchmarks/src/largeform/ng2/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ ts_devserver(
2828
entry_module = "angular/modules/benchmarks/src/largeform/ng2/index",
2929
index_html = "index.html",
3030
port = 4200,
31-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
31+
scripts = [
32+
"@ngdeps//node_modules/tslib:tslib.js",
33+
"//tools/rxjs:rxjs_umd_modules",
34+
],
3235
static_files = [
3336
"@ngdeps//node_modules/zone.js:dist/zone.js",
3437
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/benchmarks/src/largetable/ng2/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ ts_devserver(
2727
entry_module = "angular/modules/benchmarks/src/largetable/ng2/index",
2828
index_html = "index.html",
2929
port = 4200,
30-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
30+
scripts = [
31+
"@ngdeps//node_modules/tslib:tslib.js",
32+
"//tools/rxjs:rxjs_umd_modules",
33+
],
3134
static_files = [
3235
"@ngdeps//node_modules/zone.js:dist/zone.js",
3336
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/benchmarks/src/largetable/ng2_switch/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ ts_devserver(
2424
entry_module = "angular/modules/benchmarks/src/largetable/ng2_switch/index",
2525
index_html = "index.html",
2626
port = 4200,
27-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
27+
scripts = [
28+
"@ngdeps//node_modules/tslib:tslib.js",
29+
"//tools/rxjs:rxjs_umd_modules",
30+
],
2831
static_files = [
2932
"@ngdeps//node_modules/zone.js:dist/zone.js",
3033
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/benchmarks/src/largetable/render3/BUILD.bazel

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ ng_rollup_bundle(
2424
tags = ["ivy-only"],
2525
deps = [
2626
":largetable_lib",
27+
"@ngdeps//rxjs",
2728
],
2829
)
2930

modules/benchmarks/src/tree/ng2/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ ts_devserver(
2727
entry_module = "angular/modules/benchmarks/src/tree/ng2/index",
2828
index_html = "index.html",
2929
port = 4200,
30-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
30+
scripts = [
31+
"@ngdeps//node_modules/tslib:tslib.js",
32+
"//tools/rxjs:rxjs_umd_modules",
33+
],
3134
static_files = [
3235
"@ngdeps//node_modules/zone.js:dist/zone.js",
3336
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/benchmarks/src/tree/ng2_next/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ ts_devserver(
2222
entry_module = "angular/modules/benchmarks/src/tree/ng2_next/index",
2323
index_html = "index.html",
2424
port = 4200,
25-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
25+
scripts = [
26+
"@ngdeps//node_modules/tslib:tslib.js",
27+
"//tools/rxjs:rxjs_umd_modules",
28+
],
2629
deps = [":ng2_next"],
2730
)
2831

modules/benchmarks/src/tree/ng2_static/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ ts_devserver(
2222
entry_module = "angular/modules/benchmarks/src/tree/ng2_static/index",
2323
index_html = "index.html",
2424
port = 4200,
25-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
25+
scripts = [
26+
"@ngdeps//node_modules/tslib:tslib.js",
27+
"//tools/rxjs:rxjs_umd_modules",
28+
],
2629
static_files = [
2730
"@ngdeps//node_modules/zone.js:dist/zone.js",
2831
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/benchmarks/src/tree/ng2_switch/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ ts_devserver(
2424
entry_module = "angular/modules/benchmarks/src/tree/ng2_switch/index",
2525
index_html = "index.html",
2626
port = 4200,
27-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
27+
scripts = [
28+
"@ngdeps//node_modules/tslib:tslib.js",
29+
"//tools/rxjs:rxjs_umd_modules",
30+
],
2831
static_files = [
2932
"@ngdeps//node_modules/zone.js:dist/zone.js",
3033
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/benchmarks/src/tree/render3/BUILD.bazel

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ ng_rollup_bundle(
2323
tags = ["ivy-only"],
2424
deps = [
2525
":tree_lib",
26+
"@ngdeps//rxjs",
2627
],
2728
)
2829

modules/benchmarks/src/tree/render3_function/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ ts_devserver(
2020
entry_module = "angular/modules/benchmarks/src/tree/render3_function/index",
2121
index_html = "index.html",
2222
port = 4200,
23-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
23+
scripts = [
24+
"@ngdeps//node_modules/tslib:tslib.js",
25+
"//tools/rxjs:rxjs_umd_modules",
26+
],
2427
deps = [":render3_function_lib"],
2528
)
2629

modules/playground/src/async/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ ts_devserver(
2121
entry_module = "angular/modules/playground/src/async/index",
2222
index_html = "index.html",
2323
port = 4200,
24-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
24+
scripts = [
25+
"@ngdeps//node_modules/tslib:tslib.js",
26+
"//tools/rxjs:rxjs_umd_modules",
27+
],
2528
static_files = [
2629
"@ngdeps//node_modules/zone.js:dist/zone.js",
2730
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/playground/src/hello_world/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ ts_devserver(
2121
entry_module = "angular/modules/playground/src/hello_world/index",
2222
index_html = "index.html",
2323
port = 4200,
24-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
24+
scripts = [
25+
"@ngdeps//node_modules/tslib:tslib.js",
26+
"//tools/rxjs:rxjs_umd_modules",
27+
],
2528
static_files = [
2629
"@ngdeps//node_modules/zone.js:dist/zone.js",
2730
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/playground/src/http/BUILD.bazel

+5-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ ng_module(
1414
"//packages/http",
1515
"//packages/platform-browser",
1616
"//packages/platform-browser-dynamic",
17+
"@ngdeps//rxjs",
1718
],
1819
)
1920

@@ -23,7 +24,10 @@ ts_devserver(
2324
entry_module = "angular/modules/playground/src/http/index",
2425
index_html = "index.html",
2526
port = 4200,
26-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
27+
scripts = [
28+
"@ngdeps//node_modules/tslib:tslib.js",
29+
"//tools/rxjs:rxjs_umd_modules",
30+
],
2731
static_files = [
2832
"@ngdeps//node_modules/zone.js:dist/zone.js",
2933
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/playground/src/jsonp/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ ts_devserver(
2323
entry_module = "angular/modules/playground/src/jsonp/index",
2424
index_html = "index.html",
2525
port = 4200,
26-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
26+
scripts = [
27+
"@ngdeps//node_modules/tslib:tslib.js",
28+
"//tools/rxjs:rxjs_umd_modules",
29+
],
2730
static_files = [
2831
"@ngdeps//node_modules/zone.js:dist/zone.js",
2932
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

modules/playground/src/key_events/BUILD.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ ts_devserver(
2121
entry_module = "angular/modules/playground/src/key_events/index",
2222
index_html = "index.html",
2323
port = 4200,
24-
scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
24+
scripts = [
25+
"@ngdeps//node_modules/tslib:tslib.js",
26+
"//tools/rxjs:rxjs_umd_modules",
27+
],
2528
static_files = [
2629
"@ngdeps//node_modules/zone.js:dist/zone.js",
2730
"@ngdeps//node_modules/reflect-metadata:Reflect.js",

0 commit comments

Comments
 (0)