Skip to content

Commit 587cd8a

Browse files
committed
build: drop usage of rules_nodejs 's pkg_npm in favor of using npm_package (#30914)
(cherry picked from commit c19aaae)
1 parent 14afce2 commit 587cd8a

File tree

8 files changed

+38
-44
lines changed

8 files changed

+38
-44
lines changed

WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ setup_dependencies_2()
230230

231231
git_repository(
232232
name = "rules_angular",
233-
commit = "60d0dbdf18224f5167da1a43f4de9c4cb717b593",
233+
commit = "514eda9ec00a6745dc11b2a62d7be2634199171e",
234234
remote = "https://github.com/devversion/rules_angular.git",
235235
)
236236

src/google-maps/schematics/BUILD.bazel

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
2-
load("//tools:defaults.bzl", "pkg_npm")
3-
load("//tools:defaults2.bzl", "ts_project")
2+
load("//tools:defaults2.bzl", "npm_package", "ts_project")
43
load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config")
54

65
package(default_visibility = ["//visibility:public"])
@@ -32,9 +31,9 @@ ts_project(
3231
)
3332

3433
# This package is intended to be combined into the main @angular/google-maps package as a dep.
35-
pkg_npm(
34+
npm_package(
3635
name = "npm_package",
37-
deps = [
36+
srcs = [
3837
":schematics",
3938
":schematics_assets",
4039
"//src/google-maps/schematics/ng-update",

src/material-date-fns-adapter/schematics/BUILD.bazel

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
2-
load("//tools:defaults.bzl", "pkg_npm")
3-
load("//tools:defaults2.bzl", "ts_project")
2+
load("//tools:defaults2.bzl", "npm_package", "ts_project")
43

54
package(default_visibility = ["//visibility:public"])
65

@@ -27,9 +26,9 @@ ts_project(
2726
)
2827

2928
# This package is intended to be combined into the main @angular/material-date-fns-adapter package as a dep.
30-
pkg_npm(
29+
npm_package(
3130
name = "npm_package",
32-
deps = [
31+
srcs = [
3332
":schematics",
3433
":schematics_assets",
3534
],

src/material-luxon-adapter/schematics/BUILD.bazel

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
2-
load("//tools:defaults.bzl", "pkg_npm")
3-
load("//tools:defaults2.bzl", "ts_project")
2+
load("//tools:defaults2.bzl", "npm_package", "ts_project")
43

54
package(default_visibility = ["//visibility:public"])
65

@@ -26,9 +25,9 @@ ts_project(
2625
)
2726

2827
# This package is intended to be combined into the main @angular/material-luxon-adapter package as a dep.
29-
pkg_npm(
28+
npm_package(
3029
name = "npm_package",
31-
deps = [
30+
srcs = [
3231
":schematics",
3332
":schematics_assets",
3433
],

src/material-moment-adapter/schematics/BUILD.bazel

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
2-
load("//tools:defaults.bzl", "pkg_npm")
3-
load("//tools:defaults2.bzl", "ts_project")
2+
load("//tools:defaults2.bzl", "npm_package", "ts_project")
43

54
package(default_visibility = ["//visibility:public"])
65

@@ -26,9 +25,9 @@ ts_project(
2625
)
2726

2827
# This package is intended to be combined into the main @angular/material-moment-adapter package as a dep.
29-
pkg_npm(
28+
npm_package(
3029
name = "npm_package",
31-
deps = [
30+
srcs = [
3231
":schematics",
3332
":schematics_assets",
3433
],

src/youtube-player/schematics/BUILD.bazel

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
2-
load("//tools:defaults.bzl", "pkg_npm")
3-
load("//tools:defaults2.bzl", "ts_project")
2+
load("//tools:defaults2.bzl", "npm_package", "ts_project")
43

54
package(default_visibility = ["//visibility:public"])
65

@@ -26,9 +25,9 @@ ts_project(
2625
)
2726

2827
# This package is intended to be combined into the main @angular/youtube-player package as a dep.
29-
pkg_npm(
28+
npm_package(
3029
name = "npm_package",
31-
deps = [
30+
srcs = [
3231
":schematics",
3332
":schematics_assets",
3433
],

tools/defaults.bzl

-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Re-export of Bazel rules with repository-wide defaults
22

33
load("@rules_pkg//:pkg.bzl", "pkg_tar")
4-
load("@build_bazel_rules_nodejs//:index.bzl", _pkg_npm = "pkg_npm")
54
load("@rules_sass//src:index.bzl", _sass_binary = "sass_binary", _sass_library = "sass_library")
65
load("@npm//@angular/bazel:index.bzl", _ng_package = "ng_package")
76
load("//:packages.bzl", "NO_STAMP_NPM_PACKAGE_SUBSTITUTIONS", "NPM_PACKAGE_SUBSTITUTIONS")
@@ -101,23 +100,3 @@ def ng_package(
101100
interop_deps = [d.replace("_legacy", "") for d in deps] + package_deps,
102101
package_name = package_name,
103102
)
104-
105-
def pkg_npm(name, visibility = None, **kwargs):
106-
_pkg_npm(
107-
name = name,
108-
# We never set a `package_name` for NPM packages, neither do we enable validation.
109-
# This is necessary because the source targets of the NPM packages all have
110-
# package names set and setting a similar `package_name` on the NPM package would
111-
# result in duplicate linker mappings that will conflict. e.g. consider the following
112-
# scenario: We have a `ts_library` for `@angular/cdk`. We will configure a package
113-
# name for the target so that it can be resolved in NodeJS executions from `node_modules`.
114-
# If we'd also set a `package_name` for the associated `pkg_npm` target, there would be
115-
# two mappings for `@angular/cdk` and the linker will complain. For a better development
116-
# experience, we want the mapping to resolve to the direct outputs of the `ts_library`
117-
# instead of requiring tests and other targets to assemble the NPM package first.
118-
package_name = None,
119-
validate = False,
120-
substitutions = npmPackageSubstitutions,
121-
visibility = visibility,
122-
**kwargs
123-
)

tools/defaults2.bzl

+22-2
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,37 @@ load("@aspect_rules_js//npm:defs.bzl", _npm_package = "npm_package")
33
load("@devinfra//bazel/http-server:index.bzl", _http_server = "http_server")
44
load("@devinfra//bazel/spec-bundling:index_rjs.bzl", _spec_bundle = "spec_bundle")
55
load("@rules_angular//src/ng_project:index.bzl", _ng_project = "ng_project")
6+
load("@rules_angular//src/ng_package/text_replace:index.bzl", _text_replace = "text_replace")
67
load("@rules_browsers//src/protractor_test:index.bzl", "protractor_test")
78
load("//tools/bazel:module_name.bzl", "compute_module_name")
89
load("//tools/bazel:ts_project_interop.bzl", _ts_project = "ts_project")
910
load("//tools/bazel:web_test_suite.bzl", _ng_web_test_suite = "ng_web_test_suite")
11+
load("//:packages.bzl", "NO_STAMP_NPM_PACKAGE_SUBSTITUTIONS", "NPM_PACKAGE_SUBSTITUTIONS")
1012

1113
spec_bundle = _spec_bundle
1214
http_server = _http_server
1315
ng_web_test_suite = _ng_web_test_suite
1416

15-
def npm_package(**kwargs):
16-
_npm_package(**kwargs)
17+
def npm_package(name, srcs = [], **kwargs):
18+
_text_replace(
19+
name = "%s_substituted" % name,
20+
srcs = srcs,
21+
substitutions = select({
22+
"//tools:stamp": NPM_PACKAGE_SUBSTITUTIONS,
23+
"//conditions:default": NO_STAMP_NPM_PACKAGE_SUBSTITUTIONS,
24+
}),
25+
)
26+
_npm_package(
27+
name = name,
28+
srcs = srcs + [
29+
"%s_substituted" % name,
30+
],
31+
replace_prefixes = {
32+
"%s_substituted" % name: "/",
33+
},
34+
allow_overwrites = True,
35+
**kwargs
36+
)
1737

1838
def ts_project(
1939
name,

0 commit comments

Comments
 (0)