Skip to content

Commit 9ce713b

Browse files
committed
build: migrate all nodejs_binary targets to rules_js
Migrate all `nodejs_binary` targets to `rules_js`.
1 parent c4539e2 commit 9ce713b

File tree

15 files changed

+65
-65
lines changed

15 files changed

+65
-65
lines changed

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,11 @@
189189
"@angular/compiler-cli@20.0.0-next.4": "patches/@angular__compiler-cli.patch"
190190
},
191191
"packageExtensions": {
192+
"dgeni-packages": {
193+
"dependencies": {
194+
"clonedeep": "*"
195+
}
196+
},
192197
"@angular/animations": {
193198
"dependencies": {
194199
"@nginfra/angular-linking": "1.0.2"

pnpm-lock.yaml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components-examples/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ genrule(
7979
echo "$(execpaths //src/components-examples:example-source-files)" \
8080
> $(execpath _example_module.MF)
8181
82+
export JS_BINARY__NO_CD_BINDIR="1"
83+
8284
# Run the bazel entry-point for generating the example module.
8385
./$(execpath //tools/example-module:bazel-bin) \
8486
"$(execpath _example_module.MF)" \

src/universal-app/BUILD.bazel

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
load("@bazel_skylib//rules:build_test.bzl", "build_test")
2-
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "npm_package_bin")
2+
load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_run_binary")
33
load("//src/cdk:config.bzl", "CDK_TARGETS")
44
load("//src/cdk-experimental:config.bzl", "CDK_EXPERIMENTAL_TARGETS")
55
load("//src/components-examples:config.bzl", "ALL_EXAMPLES")
@@ -78,19 +78,14 @@ sass_binary(
7878
],
7979
)
8080

81-
nodejs_binary(
81+
js_binary(
8282
name = "prerender",
8383
data = [
8484
"index-source.html",
8585
":prerender_bundle",
8686
":styles_scss",
8787
],
8888
entry_point = ":prerender_bundle.js",
89-
templated_args = [
90-
# TODO(josephperrott): update dependency usages to no longer need bazel patch module resolver
91-
# See: https://github.com/bazelbuild/rules_nodejs/wiki#--bazel_patch_module_resolver-now-defaults-to-false-2324
92-
"--bazel_patch_module_resolver",
93-
],
9489
)
9590

9691
devmode_esbuild(
@@ -117,19 +112,19 @@ devmode_esbuild(
117112
],
118113
)
119114

120-
npm_package_bin(
115+
js_run_binary(
121116
name = "prerender_test_bin",
122117
outs = ["index-prerendered.html"],
123-
args = ["$@"],
118+
args = ["../../../$@"],
124119
tool = ":prerender",
125120
)
126121

127-
npm_package_bin(
122+
js_run_binary(
128123
name = "debug_prerender_bin",
129124
# Note: the file needs to be called `index.html` specifically so the server can pick it up.
130125
outs = ["index.html"],
131126
args = [
132-
"$@",
127+
"../../../$@",
133128
"--debug", # Disables some testing behavior that can be annoying while debugging.
134129
],
135130
tool = ":prerender",

tools/dgeni/BUILD.bazel

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
1-
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
1+
load("@aspect_rules_js//js:defs.bzl", "js_binary")
22
load("//tools:defaults2.bzl", "ts_project")
33

44
package(default_visibility = ["//visibility:public"])
55

6-
nodejs_binary(
6+
js_binary(
77
name = "dgeni",
88
data = [
9-
":sources_legacy",
10-
"@npm//dgeni",
11-
"@npm//dgeni-packages",
9+
":sources",
1210
],
13-
entry_point = ":bazel-bin.ts",
14-
# TODO(josephperrott): update dependency usages to no longer need bazel patch module resolver
15-
# See: https://github.com/bazelbuild/rules_nodejs/wiki#--bazel_patch_module_resolver-now-defaults-to-false-2324
16-
templated_args = ["--bazel_patch_module_resolver"],
11+
entry_point = ":bazel-bin.js",
1712
)
1813

1914
ts_project(

tools/dgeni/index.bzl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,30 @@ def _dgeni_api_docs(ctx):
3535
args.add_joined(entry_points, join_with = ",")
3636

3737
for entry_point in entry_points:
38-
expected_outputs += [
38+
expected_outputs.append(
3939
# Declare the output for the current entry-point. The output file will always follow the
4040
# same format: "{output_folder}/{package_name}-{entry_point_name}.html"
4141
# (e.g. "api-docs/material-slider-testing.html")
4242
ctx.actions.declare_file("%s-%s.html" %
4343
(package_name, entry_point.replace("/", "-"))),
44-
]
44+
)
4545

4646
# Small workaround that ensures that the "ripple" API doc is properly exposed as an output
4747
# of the packaging rule. Technically Dgeni should not output the "ripple" directory as
4848
# its own entry-point. TODO(devversion): Support sub API docs for entry-points
4949
if package_name == "material":
50-
expected_outputs += [ctx.actions.declare_file("%s-%s.html" % (package_name, "ripple"))]
50+
expected_outputs.append(ctx.actions.declare_file("%s-%s.html" % (package_name, "ripple")))
5151

5252
# Run the Dgeni bazel executable which builds the documentation output based on the
5353
# configured rule attributes.
5454
ctx.actions.run(
5555
# Note that we want to add the dgeni template files as well. This makes sure that the
5656
# templates are available in the sandbox execution and can be read by Dgeni.
5757
inputs = input_files + ctx.files._dgeni_templates,
58+
env = {
59+
# Not needed as we operate with source files outside bazel-bin.
60+
"JS_BINARY__NO_CD_BINDIR": "1",
61+
},
5862
executable = ctx.executable._dgeni_bin,
5963
outputs = expected_outputs,
6064
arguments = [args],
@@ -83,7 +87,7 @@ dgeni_api_docs = rule(
8387
"_dgeni_bin": attr.label(
8488
default = Label("//tools/dgeni"),
8589
executable = True,
86-
cfg = "host",
90+
cfg = "exec",
8791
),
8892

8993
# Dgeni document templates that should be be available as inputs to the

tools/example-module/BUILD.bazel

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
1+
load("@aspect_rules_js//js:defs.bzl", "js_binary")
22
load("//tools:defaults2.bzl", "ts_project")
33

44
package(default_visibility = ["//visibility:public"])
@@ -12,15 +12,11 @@ ts_project(
1212
],
1313
)
1414

15-
nodejs_binary(
15+
js_binary(
1616
name = "bazel-bin",
1717
data = [
1818
":example-module.template",
19-
":example-module-lib_legacy",
20-
"@npm//typescript",
19+
":example-module-lib",
2120
],
22-
entry_point = ":bazel-bin.ts",
23-
# TODO(josephperrott): update dependency usages to no longer need bazel patch module resolver
24-
# See: https://github.com/bazelbuild/rules_nodejs/wiki#--bazel_patch_module_resolver-now-defaults-to-false-2324
25-
templated_args = ["--bazel_patch_module_resolver"],
21+
entry_point = ":bazel-bin.js",
2622
)

tools/extract-tokens/BUILD.bazel

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
1+
load("@aspect_rules_js//js:defs.bzl", "js_binary")
22
load("//tools:defaults2.bzl", "ts_project")
33

44
package(default_visibility = ["//visibility:public"])
@@ -13,13 +13,10 @@ ts_project(
1313
],
1414
)
1515

16-
nodejs_binary(
16+
js_binary(
1717
name = "extract-tokens",
1818
data = [
19-
":extract_tokens_lib_legacy",
20-
"@npm//highlight.js",
21-
"@npm//sass",
19+
":extract_tokens_lib",
2220
],
23-
entry_point = ":extract-tokens.ts",
24-
templated_args = ["--bazel_patch_module_resolver"],
21+
entry_point = ":extract-tokens.js",
2522
)

tools/extract-tokens/index.bzl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ def _extract_tokens(ctx):
2525
# can throw an error if the script didn't generate the required outputs.
2626
ctx.actions.run(
2727
inputs = input_files,
28+
env = {
29+
# Not needed as we operate with source files; not inside `bazel-bin`.
30+
"JS_BINARY__NO_CD_BINDIR": "1",
31+
},
2832
executable = ctx.executable._extract_tokens,
2933
outputs = expected_outputs,
3034
arguments = [args],

tools/highlight-files/BUILD.bazel

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
21
load("//tools:defaults2.bzl", "ts_project")
2+
load("@aspect_rules_js//js:defs.bzl", "js_binary")
33

44
package(default_visibility = ["//visibility:public"])
55

@@ -15,15 +15,10 @@ ts_project(
1515
],
1616
)
1717

18-
nodejs_binary(
18+
js_binary(
1919
name = "highlight-files",
2020
data = [
21-
":sources_legacy",
22-
],
23-
entry_point = ":highlight-files.ts",
24-
templated_args = [
25-
# TODO(josephperrott): update dependency usages to no longer need bazel patch module resolver
26-
# See: https://github.com/bazelbuild/rules_nodejs/wiki#--bazel_patch_module_resolver-now-defaults-to-false-2324
27-
"--bazel_patch_module_resolver",
21+
":sources",
2822
],
23+
entry_point = ":highlight-files.js",
2924
)

tools/highlight-files/index.bzl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ def _highlight_files(ctx):
3535
inputs = input_files,
3636
executable = ctx.executable._highlight_files,
3737
outputs = [output_dir],
38+
env = {
39+
# Not needed as we operate with source files outside bazel-bin.
40+
"JS_BINARY__NO_CD_BINDIR": "1",
41+
},
3842
arguments = [args],
3943
progress_message = "HighlightFiles",
4044
)
@@ -56,7 +60,7 @@ highlight_files = rule(
5660
"_highlight_files": attr.label(
5761
default = Label("//tools/highlight-files"),
5862
executable = True,
59-
cfg = "host",
63+
cfg = "exec",
6064
),
6165
},
6266
)

tools/markdown-to-html/BUILD.bazel

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
1+
load("@aspect_rules_js//js:defs.bzl", "js_binary")
22
load("//tools:defaults.bzl", "jasmine_node_test")
33
load("//tools:defaults2.bzl", "ts_project")
44

@@ -20,15 +20,12 @@ ts_project(
2020
],
2121
)
2222

23-
nodejs_binary(
23+
js_binary(
2424
name = "markdown-to-html",
2525
data = [
2626
":transform-markdown",
27-
"@npm//highlight.js",
28-
"@npm//marked",
2927
],
30-
entry_point = ":transform-markdown.ts",
31-
templated_args = ["--bazel_patch_module_resolver"],
28+
entry_point = ":transform-markdown.js",
3229
)
3330

3431
ts_project(

tools/markdown-to-html/index.bzl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ def _markdown_to_html(ctx):
4646
# if the script didn't generate the required outputs.
4747
ctx.actions.run(
4848
inputs = input_files,
49+
env = {
50+
# Not needed as we operate with source files outside bazel-bin.
51+
"JS_BINARY__NO_CD_BINDIR": "1",
52+
},
4953
executable = ctx.executable._transform_markdown,
5054
outputs = expected_outputs,
5155
arguments = [args],
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
1-
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
1+
load("@aspect_rules_js//js:defs.bzl", "js_binary")
22
load("//tools:defaults2.bzl", "ts_project")
33

44
package(default_visibility = ["//visibility:public"])
55

6-
nodejs_binary(
6+
js_binary(
77
name = "package-docs-content",
88
data = [
9-
":sources_legacy",
10-
"@npm//fs-extra",
9+
":sources",
1110
],
12-
entry_point = ":package-docs-content.ts",
13-
# TODO(josephperrott): update dependency usages to no longer need bazel patch module resolver
14-
# See: https://github.com/bazelbuild/rules_nodejs/wiki#--bazel_patch_module_resolver-now-defaults-to-false-2324
15-
templated_args = ["--bazel_patch_module_resolver"],
11+
entry_point = ":package-docs-content.js",
1612
)
1713

1814
ts_project(
@@ -21,5 +17,6 @@ ts_project(
2117
tsconfig = "//tools:tsconfig",
2218
deps = [
2319
"//:node_modules/@types/fs-extra",
20+
"//:node_modules/fs-extra",
2421
],
2522
)

tools/package-docs-content/index.bzl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ def _package_docs_content(ctx):
6262
ctx.actions.run(
6363
inputs = ctx.files.srcs,
6464
executable = ctx.executable._packager,
65+
env = {
66+
# Not needed as we operate with source files; not inside `bazel-bin`.
67+
"JS_BINARY__NO_CD_BINDIR": "1",
68+
},
6569
outputs = [output_dir],
6670
arguments = [args],
6771
progress_message = "PackageDocsContent",
@@ -89,7 +93,7 @@ package_docs_content = rule(
8993
"_packager": attr.label(
9094
default = Label("//tools/package-docs-content"),
9195
executable = True,
92-
cfg = "host",
96+
cfg = "exec",
9397
),
9498
},
9599
)

0 commit comments

Comments
 (0)