Skip to content

Commit a3b05a0

Browse files
kyliauKeen Yee Liau
authored and
Keen Yee Liau
committed
build: Use fine-grained node_module deps
This commit updates the BUILD files to specify fine-grained node_module deps by replacing "@typings" comments with actual @npm node module. Moved tools/bazel.rc -> .bazelrc Removed "jasmine" typings from base tsconfig.json Added @bazel/karma to devDependencies, needed for `ts_web_test`
1 parent b38a13d commit a3b05a0

File tree

27 files changed

+1502
-1866
lines changed

27 files changed

+1502
-1866
lines changed

.bazelignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dist
2+
node_modules

tools/bazel.rc renamed to .bazelrc

File renamed without changes.

.circleci/config.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
## IMPORTANT
1313
# If you change the `docker_image` version, also change the `cache_key` suffix and the version of
1414
# `com_github_bazelbuild_buildtools` in the `/WORKSPACE` file.
15-
var_1: &docker_image angular/ngcontainer:0.5.0
16-
var_2: &cache_key angular_devkit-{{ checksum "yarn.lock" }}-0.5.0
15+
var_1: &docker_image angular/ngcontainer:0.7.0
16+
var_2: &cache_key angular_devkit-{{ checksum "yarn.lock" }}-0.7.0
1717
var_3: &node_8_docker_image angular/ngcontainer:0.3.3
1818

1919
# Settings common to each job
@@ -49,7 +49,7 @@ jobs:
4949
<<: *root_package_lock_key
5050
paths:
5151
- ~/.cache/yarn
52-
52+
5353
lint:
5454
<<: *defaults
5555
steps:
@@ -89,12 +89,12 @@ jobs:
8989
- store_artifacts:
9090
path: /tmp/dist
9191
destination: cli/new-production
92-
92+
9393
e2e-node-8:
9494
<<: *defaults
9595
# Overwrite docker image to node 8.
9696
docker:
97-
- image: *node_8_docker_image
97+
- image: *node_8_docker_image
9898
environment:
9999
BASH_ENV: ~/.profile
100100
resource_class: xlarge

BUILD

Lines changed: 1 addition & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -9,72 +9,6 @@ licenses(["notice"]) # MIT License
99
exports_files([
1010
"LICENSE",
1111
"tsconfig.json", # @external
12+
"tsconfig-test.json", # @external
1213
"tslint.base.json", # @external
1314
])
14-
15-
# NOTE: this will move to node_modules/BUILD in a later release
16-
# @external_begin
17-
NODE_MODULES_EXCLUDE = [
18-
# e.g. node_modules/adm-zip/test/assets/attributes_test/New folder/hidden.txt
19-
"node_modules/**/test/**",
20-
# e.g. node_modules/xpath/docs/function resolvers.md
21-
"node_modules/**/docs/**",
22-
# e.g. node_modules/puppeteer/.local-chromium/mac-536395/chrome-mac/Chromium.app/Contents/Versions/66.0.3347.0/Chromium Framework.framework/Chromium Framework
23-
"node_modules/**/.*/**",
24-
# Ignore paths with spaces.
25-
"node_modules/**/* *",
26-
]
27-
28-
filegroup(
29-
name = "node_modules",
30-
srcs = glob(
31-
# Only include files we might use, to reduce the file count and surface size of
32-
# filename problems.
33-
[
34-
"node_modules/**/*.js",
35-
"node_modules/**/*.json",
36-
"node_modules/**/*.d.ts",
37-
],
38-
exclude = NODE_MODULES_EXCLUDE,
39-
) + glob(["node_modules/.bin/*"]),
40-
)
41-
42-
# node_modules filegroup for tools/quicktype_runner, which contains quicktype-core and tslint.
43-
QUICKTYPE_TRANSITIVE_DEPENDENCIES = [
44-
"collection-utils",
45-
"core-util-is",
46-
"inherits",
47-
"isarray",
48-
"js-base64",
49-
"pako",
50-
"pluralize",
51-
"process-nextick-args",
52-
"quicktype-core",
53-
"readable-stream",
54-
"safe-buffer",
55-
"stream-json",
56-
"string-to-stream",
57-
"tiny-inflate",
58-
"unicode-properties",
59-
"unicode-trie",
60-
"urijs",
61-
"util-deprecate",
62-
"wordwrap",
63-
]
64-
65-
filegroup(
66-
name = "quicktype_node_modules",
67-
srcs = glob(
68-
[
69-
"/".join([
70-
"node_modules", "**", pkg, "**/*.js",
71-
]) for pkg in QUICKTYPE_TRANSITIVE_DEPENDENCIES
72-
] + [
73-
"/".join([
74-
"node_modules", "**", pkg, "**/*.json",
75-
]) for pkg in QUICKTYPE_TRANSITIVE_DEPENDENCIES
76-
],
77-
exclude = NODE_MODULES_EXCLUDE,
78-
)
79-
)
80-
# @external_end

WORKSPACE

Lines changed: 34 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
workspace(name = "angular_devkit")
1+
workspace(name = "angular_cli")
22

33
# We get Buildifier from here.
44
http_archive(
@@ -8,85 +8,71 @@ http_archive(
88
sha256 = "76d1837a86fa6ef5b4a07438f8489f00bfa1b841e5643b618e01232ba884b1fe",
99
)
1010

11-
load("@com_github_bazelbuild_buildtools//buildifier:deps.bzl", "buildifier_dependencies")
12-
buildifier_dependencies()
13-
14-
# The Go toolchain is used for Buildifier.
15-
# rules_typescript_dependencies() also tries to load it but we add it explicitely so we
16-
# don't have hidden dependencies.
17-
# This also means we need to load it before rules_typescript_dependencies().
18-
http_archive(
19-
name = "io_bazel_rules_go",
20-
url = "https://github.com/bazelbuild/rules_go/archive/0.14.0.zip",
21-
strip_prefix = "rules_go-0.14.0",
22-
sha256 = "9bd7c2743f014e4e112b671098ba1da6aec036fe07093b10ca39a9f81ec5cc33",
23-
)
24-
25-
load("@io_bazel_rules_go//go:def.bzl", "go_register_toolchains", "go_rules_dependencies")
26-
go_rules_dependencies()
27-
go_register_toolchains()
28-
29-
# We need a minimum of this version to include https://github.com/bazelbuild/rules_nodejs/pull/281.
30-
http_archive(
31-
name = "build_bazel_rules_nodejs",
32-
url = "https://github.com/bazelbuild/rules_nodejs/archive/0.12.4.zip",
33-
strip_prefix = "rules_nodejs-0.12.4",
34-
sha256 = "c482700e032b4df60425cb9a6f8f28152fb1c4c947a9d61e6132fc59ce332b16",
35-
)
36-
3711
# Load the TypeScript rules, its dependencies, and setup the workspace.
3812
http_archive(
3913
name = "build_bazel_rules_typescript",
40-
url = "https://github.com/bazelbuild/rules_typescript/archive/0.16.1.zip",
41-
strip_prefix = "rules_typescript-0.16.1",
42-
sha256 = "5b2b0bc63cfcffe7bf97cad2dad3b26a73362f806de66207051f66c87956a995",
14+
url = "https://github.com/bazelbuild/rules_typescript/archive/0.20.3.zip",
15+
strip_prefix = "rules_typescript-0.20.3",
4316
)
4417

4518
load("@build_bazel_rules_typescript//:package.bzl", "rules_typescript_dependencies")
4619
# build_bazel_rules_nodejs is loaded transitively through rules_typescript_dependencies.
4720
rules_typescript_dependencies()
4821

22+
load("@com_github_bazelbuild_buildtools//buildifier:deps.bzl", "buildifier_dependencies")
23+
buildifier_dependencies()
24+
25+
load("@io_bazel_rules_go//go:def.bzl", "go_register_toolchains", "go_rules_dependencies")
26+
go_rules_dependencies()
27+
go_register_toolchains()
28+
4929
load("@build_bazel_rules_typescript//:defs.bzl", "ts_setup_workspace")
5030
ts_setup_workspace()
5131

52-
# Load the nodejs dependencies, check minimum Bazel version, and define the local node_modules.
53-
load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dependencies")
54-
rules_nodejs_dependencies()
55-
56-
load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories")
57-
check_bazel_version("0.15.0")
32+
load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories", "yarn_install")
33+
# 0.18.0 is needed for .bazelignore
34+
check_bazel_version("0.18.0")
5835
node_repositories(
59-
package_json = ["//:package.json"],
60-
preserve_symlinks = True,
6136
node_version = "10.9.0",
6237
yarn_version = "1.9.2",
6338
node_repositories = {
6439
"10.9.0-darwin_amd64": (
65-
"node-v10.9.0-darwin-x64.tar.gz",
66-
"node-v10.9.0-darwin-x64",
40+
"node-v10.9.0-darwin-x64.tar.gz",
41+
"node-v10.9.0-darwin-x64",
6742
"3c4fe75dacfcc495a432a7ba2dec9045cff359af2a5d7d0429c84a424ef686fc"
6843
),
6944
"10.9.0-linux_amd64": (
70-
"node-v10.9.0-linux-x64.tar.xz",
71-
"node-v10.9.0-linux-x64",
45+
"node-v10.9.0-linux-x64.tar.xz",
46+
"node-v10.9.0-linux-x64",
7247
"c5acb8b7055ee0b6ac653dc4e458c5db45348cecc564b388f4ed1def84a329ff"
7348
),
7449
"10.9.0-windows_amd64": (
75-
"node-v10.9.0-win-x64.zip",
76-
"node-v10.9.0-win-x64",
50+
"node-v10.9.0-win-x64.zip",
51+
"node-v10.9.0-win-x64",
7752
"6a75cdbb69d62ed242d6cbf0238a470bcbf628567ee339d4d098a5efcda2401e"
7853
),
7954
},
8055
yarn_repositories = {
8156
"1.9.2": (
82-
"yarn-v1.9.2.tar.gz",
83-
"yarn-v1.9.2",
57+
"yarn-v1.9.2.tar.gz",
58+
"yarn-v1.9.2",
8459
"3ad69cc7f68159a562c676e21998eb21b44138cae7e8fe0749a7d620cf940204"
8560
),
8661
},
8762
)
8863

89-
local_repository(
64+
yarn_install(
65+
name = "npm",
66+
package_json = "//:package.json",
67+
yarn_lock = "//:yarn.lock",
68+
data = [
69+
"//:tools/yarn/check-yarn.js",
70+
],
71+
)
72+
73+
http_archive(
9074
name = "rxjs",
91-
path = "node_modules/rxjs/src",
75+
url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz",
76+
strip_prefix = "package/src",
77+
sha256 = "72b0b4e517f43358f554c125e40e39f67688cd2738a8998b4a266981ed32f403",
9278
)

package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@
7575
"devDependencies": {
7676
"@angular/compiler": "^7.0.0-rc.0",
7777
"@angular/compiler-cli": "^7.0.0-rc.0",
78-
"@bazel/typescript": "0.16.1",
78+
"@bazel/karma": "^0.20.3",
79+
"@bazel/typescript": "0.20.3",
7980
"@ngtools/json-schema": "^1.1.0",
8081
"@types/copy-webpack-plugin": "^4.4.1",
8182
"@types/express": "^4.16.0",
@@ -92,6 +93,7 @@
9293
"@types/webpack": "^4.4.11",
9394
"@types/webpack-dev-server": "^3.1.0",
9495
"@types/webpack-sources": "^0.1.5",
96+
"ajv": "6.5.3",
9597
"common-tags": "^1.8.0",
9698
"conventional-changelog": "^1.1.0",
9799
"conventional-commits-parser": "^3.0.0",
@@ -101,16 +103,22 @@
101103
"istanbul": "^0.4.5",
102104
"jasmine": "^2.6.0",
103105
"jasmine-spec-reporter": "^3.2.0",
106+
"karma-jasmine-html-reporter": "^0.2.2",
104107
"license-checker": "^20.1.0",
105108
"minimatch": "^3.0.4",
106109
"minimist": "^1.2.0",
110+
"npm-registry-client": "^8.6.0",
111+
"pacote": "^9.2.3",
112+
"pidtree": "^0.3.0",
113+
"pidusage": "^2.0.17",
107114
"rxjs": "~6.3.0",
108115
"semver": "^5.3.0",
109116
"source-map": "^0.5.6",
110117
"source-map-support": "^0.5.0",
111118
"spdx-satisfies": "^4.0.0",
112119
"tar": "^4.4.4",
113120
"through2": "^2.0.3",
121+
"tree-kill": "^1.2.0",
114122
"ts-node": "^5.0.0",
115123
"tslint-no-circular-imports": "^0.5.0",
116124
"tslint-sonarts": "^1.7.0"

packages/angular/cli/BUILD

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ ts_library(
2929
"//packages/angular_devkit/schematics",
3030
"//packages/angular_devkit/schematics:tools",
3131
# @typings: es2017.object
32-
# @typings: inquirer
33-
# @typings: node
34-
# @typings: semver
32+
"@npm//@types/node",
33+
"@npm//@types/inquirer",
34+
"@npm//@types/semver",
3535
],
3636
)
3737

packages/angular/pwa/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ ts_library(
3030
"//packages/angular_devkit/core",
3131
"//packages/angular_devkit/schematics",
3232
"@rxjs",
33-
# @typings: node
33+
"@npm//@types/node",
3434
],
3535
)
3636

packages/angular_devkit/architect/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ ts_library(
2626
"//packages/angular_devkit/core:node",
2727
"@rxjs",
2828
"@rxjs//operators",
29+
"@npm//@types/node",
2930
],
3031
)

packages/angular_devkit/architect_cli/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ ts_library(
2020
"//packages/angular_devkit/core:node",
2121
"@rxjs",
2222
"@rxjs//operators",
23+
"@npm//@types/node",
24+
"@npm//@types/minimist",
2325
],
2426
)

packages/angular_devkit/benchmark/BUILD

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ ts_library(
2727
"//packages/angular_devkit/core:node",
2828
"@rxjs",
2929
"@rxjs//operators",
30-
# @typings: node
30+
"@npm//@types/node",
31+
"@npm//@types/minimist",
3132
],
3233
)
3334

@@ -50,12 +51,23 @@ ts_library(
5051
"//packages/angular_devkit/core:node",
5152
"@rxjs",
5253
"@rxjs//operators",
53-
# @typings: jasmine
54-
# @typings: node
54+
"@npm//@types/node",
55+
"@npm//@types/jasmine",
5556
],
57+
testonly = True,
58+
tsconfig = "//:tsconfig-test.json",
5659
)
5760

5861
jasmine_node_test(
5962
name = "benchmark_test",
6063
srcs = [":benchmark_test_lib"],
61-
)
64+
deps = [
65+
"@npm//jasmine",
66+
"@npm//source-map",
67+
"@npm//minimist",
68+
"@npm//pidusage",
69+
"@npm//pidtree",
70+
"@npm//tree-kill",
71+
"@npm//temp",
72+
],
73+
)

packages/angular_devkit/build_optimizer/BUILD

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@ ts_library(
2323
"src/**/*_benchmark.ts",
2424
],
2525
),
26-
deps = [],
26+
deps = [
27+
"@npm//@types/node",
28+
"@npm//@types/source-map",
29+
"@npm//typescript",
30+
"@npm//@types/webpack",
31+
],
2732
)
2833

2934
ts_library(
@@ -37,12 +42,19 @@ ts_library(
3742
deps = [
3843
":build_optimizer",
3944
"//packages/angular_devkit/core",
40-
# @typings: jasmine
41-
# @typings: node
45+
"@npm//@types/node",
46+
"@npm//@types/jasmine",
47+
"@npm//@types/source-map",
4248
],
49+
testonly = True,
50+
tsconfig = "//:tsconfig-test.json",
4351
)
4452

4553
jasmine_node_test(
4654
name = "build_optimizer_test",
4755
srcs = [":build_optimizer_test_lib"],
48-
)
56+
deps = [
57+
"@npm//jasmine",
58+
"@npm//source-map",
59+
],
60+
)

0 commit comments

Comments
 (0)