aspect-build / aspect-build/rules_js
[Bug]: Using bazel-bin/external/pnpm to run a helper shell file (via package.json script) include unnecessary environment variables breaks tooling
- Dominant language
- Starlark
- Stars
- 378
- Forks
- 183
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 29
Description
### What happened?
We have multiple shell files which helps locate build target and build specific arguments to run against `bazel test` and `bazel run`. These shell files run bazel commands. To trigger these shell scripts, we have added them to package.json scripts--so we can just `pnpm run <args>`.
While trying to add further Playwright integration to update snapshots, we are noticing that Playwright is reporting "missing tests". Upon investigating, we found that bazel-bin/external/pnpm includes a bunch of NPM_* and JS_BINARY_* environment variables to the shell script, which in turn make available to the `bazel run` call in the script and confuses Playwright. If we were to `bazel run` directly from the terminal, Playwright can locate the test. It seems that the issue is from these environment variables being included as part of running pnpm as unsetting all of the JS_BINARY_* variables inside the shell script before calling `bazel run` fixes the issue.
Overall, the problem seem to stem from bazel-bin/external/pnpm as it should not be "leaking" these JS_BINARY_* environment variables.
### Version
Development (host) and target OS/architectures:
Output of `bazel --version`: 7.1.1
Version of the Aspect rules, or other relevant rules from your
`WORKSPACE` or `MODULE.bazel` file: 1.42.3
Language(s) and/or frameworks involved: Playwright
### How to reproduce
_No response_
### Any other information?
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.