Skip to content

Commit d2262c8

Browse files
committed
fix(builtin): bugs in 0.38 found while rolling out to angular repo
1 parent 1ecb527 commit d2262c8

5 files changed

Lines changed: 36 additions & 13 deletions

File tree

internal/linker/link_node_modules.bzl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,19 +122,21 @@ def get_module_mappings(label, attrs, vars, rule_kind, srcs = [], workspace_name
122122
elif label.workspace_root:
123123
mr = "%s/%s" % (label.workspace_root, mr)
124124

125-
if mn in mappings and mappings[mn] != mr:
126-
fail(("duplicate module mapping at %s: %s maps to both %s and %s" %
127-
(label, mn, mappings[mn], mr)), "deps")
128-
_debug(vars, "target %s adding module mapping %s: %s" % (label, mn, mr))
129-
130125
# since our module mapping is currently based on attribute names,
131126
# allow a special one to instruct the linker that the package has no output
132127
# directory and is therefore meant to be used as sources.
133128
# TODO: This belongs in a different mechanism like a package.json field.
134129
if getattr(attrs, "module_from_src", False):
135-
mappings[mn] = ["src", mr]
130+
mr = ["src", mr]
136131
else:
137-
mappings[mn] = ["bin", mr]
132+
mr = ["bin", mr]
133+
134+
if mn in mappings and mappings[mn] != mr:
135+
fail(("duplicate module mapping at %s: %s maps to both %s and %s" %
136+
(label, mn, mappings[mn], mr)), "deps")
137+
_debug(vars, "target %s adding module mapping %s: %s" % (label, mn, mr))
138+
139+
mappings[mn] = mr
138140
return mappings
139141

140142
# When building a mapping for use at runtime, we need paths to be relative to

internal/npm_install/generate_build_file.js

Lines changed: 8 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/npm_install/generate_build_file.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,13 @@ function addDynamicDependencies(pkgs: Dep[], dynamic_deps = DYNAMIC_DEPS) {
473473
return false;
474474
}
475475
pkgs.forEach(p => {
476-
p._dynamicDependencies = pkgs.filter(x => !!x._moduleName && match(x._moduleName, p))
477-
.map(dyn => `//${dyn._dir}:${dyn._name}`);
476+
p._dynamicDependencies =
477+
pkgs.filter(
478+
// Filter entries like
479+
// "_dir":"check-side-effects/node_modules/rollup-plugin-node-resolve"
480+
x => !x._dir.includes('/node_modules/') && !!x._moduleName &&
481+
match(x._moduleName, p))
482+
.map(dyn => `//${dyn._dir}:${dyn._name}`);
478483
});
479484
}
480485

internal/npm_install/test/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jasmine_node_test(
1313
data = [
1414
":check.js",
1515
":goldens",
16-
"//internal/npm_install:generate_build_file",
16+
"//internal/npm_install:compile_generate_build_file",
1717
"@fine_grained_goldens//:golden_files",
1818
"@npm//unidiff",
1919
],

internal/npm_install/test/generate_build_file.spec.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,17 @@ describe('build file generator', () => {
111111
expect(printPackageBin(pkgs[0]))
112112
.toContain('data = ["//some_dir:foo", "//bar:foo-plugin-bar"]');
113113
});
114+
it('should not include nested packages', () => {
115+
const pkgs = [
116+
{_name: 'foo', bin: 'foobin', _dir: 'some_dir', _moduleName: 'foo'}, {
117+
_name: 'foo-plugin-bar',
118+
_dir: 'top-level/node_modules/bar',
119+
_moduleName: 'foo-plugin-bar'
120+
}
121+
];
122+
addDynamicDependencies(pkgs, {});
123+
expect(pkgs[0]._dynamicDependencies).toEqual([]);
124+
});
114125
});
115126

116127
describe('index.bzl files', () => {

0 commit comments

Comments
 (0)