Skip to content

Commit 78dd869

Browse files
committed
build: Error: Dynamic require of "os" is not supported
Needed as esbuild does not provide require shims / proxy from ESModules.
1 parent dadb2ea commit 78dd869

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

github-actions/post-approval-changes/main.js

Lines changed: 2 additions & 1 deletion
Large diffs are not rendered by default.

tools/defaults2.bzl

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,30 @@ def jasmine_test(name, **kwargs):
8484
**kwargs
8585
)
8686

87-
def esbuild_checked_in(name, **kwargs):
87+
def esbuild_checked_in(name, platform = None, config = {}, **kwargs):
88+
"""
89+
Runs esbuild with a default Node.js banner configuration if needed.
90+
The user's provided 'config' settings will always take precedence.
91+
"""
92+
93+
# Define a default configuration for the Node.js platform.
94+
# This adds a 'require' shim needed by esbuild for ES Modules.
95+
node_defaults = {
96+
"banner": {
97+
"js": "import { createRequire } from 'node:module';globalThis['require'] ??= createRequire(import.meta.url);",
98+
},
99+
}
100+
101+
# If the platform is "node", merge the user's config on top of the defaults.
102+
# Otherwise, just use the user's config.
103+
effective_config = (
104+
{k: v for k, v in node_defaults.items() + config.items()} if platform == "node" else config
105+
)
106+
88107
_esbuild(
89108
name = "%s_generated" % name,
109+
platform = platform,
110+
config = effective_config,
90111
sourcemap = "inline",
91112
**kwargs
92113
)

0 commit comments

Comments
 (0)