Skip to content
Merged
8 changes: 6 additions & 2 deletions docs/npm_link_all_packages.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 26 additions & 1 deletion e2e/npm_translate_lock/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,13 +1,38 @@
load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files")
load("@aspect_rules_js//js:defs.bzl", "js_test")
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("@npm//:defs.bzl", "npm_link_all_packages")
load("@npm//:defs.bzl", "npm_link_all_packages", "npm_link_targets")

npm_link_all_packages(name = "node_modules")

PROD_TARGETS = npm_link_targets(
dev = False,
prod = True,
)

DEV_TARGETS = npm_link_targets(
dev = True,
prod = False,
)

js_test(
name = "test_prod_filtering",
data = PROD_TARGETS,
entry_point = "test_prod_filtering.js",
)

js_test(
name = "test_dev_filtering",
data = DEV_TARGETS,
entry_point = "test_dev_filtering.js",
)

build_test(
name = "test",
targets = [
":node_modules",
":test_prod_filtering",
":test_dev_filtering",
],
)

Expand Down
14 changes: 14 additions & 0 deletions e2e/npm_translate_lock/test_dev_filtering.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Crash if dev deps missing
require('@rollup/plugin-commonjs');
require('@rollup/plugin-json');
require('@rollup/plugin-node-resolve');

// Crash if prod deps present (filtering failed)
try {
require('debug');
throw new Error('PROD DEPENDENCY LEAKED INTO DEV BUILD');
} catch (e) {
if (e.code !== 'MODULE_NOT_FOUND') throw e;
}

console.log('✅ Development filtering validated');
14 changes: 14 additions & 0 deletions e2e/npm_translate_lock/test_prod_filtering.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Crash if prod deps missing
require('debug');
require('is-odd');
require('semver');

// Crash if dev deps present (filtering failed)
try {
require('@rollup/plugin-commonjs');
throw new Error('DEV DEPENDENCY LEAKED INTO PROD BUILD');
} catch (e) {
if (e.code !== 'MODULE_NOT_FOUND') throw e;
}

console.log('✅ Production filtering validated');
17 changes: 13 additions & 4 deletions e2e/npm_translate_lock_disable_hooks/snapshots/defs.bzl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading