Skip to content

Commit eb71285

Browse files
mattemalexeagle
authored andcommitted
fix(esbuild): add --preserve-symlinks flag by default
1 parent ba7e48e commit eb71285

File tree

9 files changed

+60
-13
lines changed

9 files changed

+60
-13
lines changed

examples/esbuild/WORKSPACE

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ http_archive(
2525
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.0/rules_nodejs-3.2.0.tar.gz"],
2626
)
2727

28-
_ESBUILD_VERSION = "0.8.34"
28+
_ESBUILD_VERSION = "0.8.48"
2929

3030
http_archive(
3131
name = "esbuild_darwin",
3232
build_file_content = """exports_files(["bin/esbuild"])""",
33-
sha256 = "3bf980b5175df873dd84fd614d57722f3b1b9c7e74929504e26192d23075d5c3",
33+
sha256 = "d21a722873ed24586f071973b77223553fca466946f3d7e3976eeaccb14424e6",
3434
strip_prefix = "package",
3535
urls = [
3636
"https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-%s.tgz" % _ESBUILD_VERSION,
@@ -40,7 +40,7 @@ http_archive(
4040
http_archive(
4141
name = "esbuild_windows",
4242
build_file_content = """exports_files(["esbuild.exe"])""",
43-
sha256 = "826cd58553e7b6910dd22aba001cd72af34e05c9c3e9af567b5b2a6b1c9f3941",
43+
sha256 = "fe5dcb97b4c47f9567012f0a45c19c655f3d2e0d76932f6dd12715dbebbd6eb0",
4444
strip_prefix = "package",
4545
urls = [
4646
"https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-%s.tgz" % _ESBUILD_VERSION,
@@ -50,7 +50,7 @@ http_archive(
5050
http_archive(
5151
name = "esbuild_linux",
5252
build_file_content = """exports_files(["bin/esbuild"])""",
53-
sha256 = "9dff3f5b06fd964a1cbb6aa9ea5ebf797767f1bd2bac71e084fb0bbefeba24a3",
53+
sha256 = "60dabe141e5dfcf99e7113bded6012868132068a582a102b258fb7b1cfdac14b",
5454
strip_prefix = "package",
5555
urls = [
5656
"https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-%s.tgz" % _ESBUILD_VERSION,

packages/esbuild/esbuild.bzl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def _esbuild_impl(ctx):
1414
# Path alias mapings are used to create a jsconfig with mappings so that esbuild
1515
# how to resolve custom package or module names
1616
path_alias_mappings = dict()
17+
npm_workspaces = []
1718

1819
if (ctx.attr.link_workspace_root):
1920
path_alias_mappings.update(generate_path_mapping(ctx.workspace_name, "."))
@@ -29,12 +30,19 @@ def _esbuild_impl(ctx):
2930

3031
if NpmPackageInfo in dep:
3132
deps_depsets.append(dep[NpmPackageInfo].sources)
33+
npm_workspaces.append(dep[NpmPackageInfo].workspace)
3234

3335
# Collect the path alias mapping to resolve packages correctly
3436
if hasattr(dep, MODULE_MAPPINGS_ASPECT_RESULTS_NAME):
3537
for key, value in getattr(dep, MODULE_MAPPINGS_ASPECT_RESULTS_NAME).items():
3638
path_alias_mappings.update(generate_path_mapping(key, value[1].replace(ctx.bin_dir.path + "/", "")))
3739

40+
node_modules_mappings = [
41+
"../../../external/%s/node_modules/*" % workspace
42+
for workspace in depset(npm_workspaces).to_list()
43+
]
44+
path_alias_mappings.update({"*": node_modules_mappings})
45+
3846
deps_inputs = depset(transitive = deps_depsets).to_list()
3947
inputs = filter_files(ctx.files.entry_point, [".mjs", ".js"]) + ctx.files.srcs + deps_inputs
4048

@@ -48,6 +56,7 @@ def _esbuild_impl(ctx):
4856
args.add("--bundle", entry_point.path)
4957
args.add("--sourcemap")
5058
args.add("--keep-names")
59+
args.add("--preserve-symlinks")
5160
args.add_joined(["--platform", ctx.attr.platform], join_with = "=")
5261
args.add_joined(["--target", ctx.attr.target], join_with = "=")
5362
args.add_joined(["--log-level", "info"], join_with = "=")

packages/esbuild/esbuild_repo.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Helper macro for fetching esbuild versions for internal tests and examples in ru
44

55
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
66

7-
_VERSION = "0.8.34"
7+
_VERSION = "0.8.48"
88

99
def esbuild_dependencies():
1010
"""Helper to install required dependencies for the esbuild rules"""
@@ -18,7 +18,7 @@ def esbuild_dependencies():
1818
],
1919
strip_prefix = "package",
2020
build_file_content = """exports_files(["bin/esbuild"])""",
21-
sha256 = "3bf980b5175df873dd84fd614d57722f3b1b9c7e74929504e26192d23075d5c3",
21+
sha256 = "d21a722873ed24586f071973b77223553fca466946f3d7e3976eeaccb14424e6",
2222
)
2323

2424
http_archive(
@@ -28,7 +28,7 @@ def esbuild_dependencies():
2828
],
2929
strip_prefix = "package",
3030
build_file_content = """exports_files(["esbuild.exe"])""",
31-
sha256 = "826cd58553e7b6910dd22aba001cd72af34e05c9c3e9af567b5b2a6b1c9f3941",
31+
sha256 = "fe5dcb97b4c47f9567012f0a45c19c655f3d2e0d76932f6dd12715dbebbd6eb0",
3232
)
3333

3434
http_archive(
@@ -38,5 +38,5 @@ def esbuild_dependencies():
3838
],
3939
strip_prefix = "package",
4040
build_file_content = """exports_files(["bin/esbuild"])""",
41-
sha256 = "9dff3f5b06fd964a1cbb6aa9ea5ebf797767f1bd2bac71e084fb0bbefeba24a3",
41+
sha256 = "60dabe141e5dfcf99e7113bded6012868132068a582a102b258fb7b1cfdac14b",
4242
)

packages/esbuild/test/typescript/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ ts_library(
99
srcs = [":main.ts"],
1010
tsconfig = ":tsconfig.json",
1111
deps = [
12+
"//packages/esbuild/test/typescript/generated-module",
1213
"//packages/esbuild/test/typescript/module-dynamic",
1314
"//packages/esbuild/test/typescript/module-one",
1415
"//packages/esbuild/test/typescript/module-two",
16+
"//packages/esbuild/test/typescript/relative-module",
1517
],
1618
)
1719

packages/esbuild/test/typescript/bundle.golden.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ var __commonJS = (callback, module) => () => {
1414
return module.exports;
1515
};
1616
var __exportStar = (target, module, desc) => {
17-
__markAsModule(target);
1817
if (module && typeof module === "object" || typeof module === "function") {
1918
for (let key of __getOwnPropNames(module))
2019
if (!__hasOwnProp.call(target, key) && key !== "default")
@@ -25,7 +24,7 @@ var __exportStar = (target, module, desc) => {
2524
var __toModule = (module) => {
2625
if (module && module.__esModule)
2726
return module;
28-
return __exportStar(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", {value: module, enumerable: true}), module);
27+
return __exportStar(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", {value: module, enumerable: true})), module);
2928
};
3029

3130

@@ -55,8 +54,15 @@ var getId = /* @__PURE__ */ __name(() => "module-one", "getId");
5554
var getId2 = /* @__PURE__ */ __name(() => "module-two", "getId");
5655

5756

58-
var main_default = `Full ID: ${getId} - ${getId2} - ${import_module_dynamic.getId}`;
57+
var getId3 = /* @__PURE__ */ __name(() => `generated-module`, "getId");
58+
59+
60+
var getId4 = /* @__PURE__ */ __name(() => "relative-module", "getId");
61+
62+
63+
var ID = `Full ID: ${getId()} - ${getId2()} - ${import_module_dynamic.getId()} - ${getId4()} - ${getId3()}`;
64+
console.log(ID);
5965
export {
60-
main_default as default
66+
ID
6167
};
6268
//# sourceMappingURL=bundle.js.map
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
load("//packages/typescript:index.bzl", "ts_library")
2+
3+
package(default_visibility = ["//packages/esbuild/test:__subpackages__"])
4+
5+
genrule(
6+
name = "lib",
7+
outs = ["lib.ts"],
8+
cmd = "echo 'export const getId = () => `generated-module`;' > $@",
9+
)
10+
11+
ts_library(
12+
name = "generated-module",
13+
srcs = ["lib.ts"],
14+
tsconfig = "//packages/esbuild/test/typescript:tsconfig.json",
15+
)

packages/esbuild/test/typescript/main.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,9 @@ import {getId as mdyn} from '@typescript/module-dynamic';
22
import {getId as m1Id} from '@typescript/module-one';
33
import {getId as m2Id} from '@typescript/module-two';
44

5-
export default `Full ID: ${m1Id} - ${m2Id} - ${mdyn}`;
5+
import {getId as mGenId} from './generated-module/lib';
6+
import {getId as mRelId} from './relative-module/lib';
7+
8+
export const ID = `Full ID: ${m1Id()} - ${m2Id()} - ${mdyn()} - ${mRelId()} - ${mGenId()}`;
9+
10+
console.log(ID);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
load("//packages/typescript:index.bzl", "ts_library")
2+
3+
package(default_visibility = ["//packages/esbuild/test:__subpackages__"])
4+
5+
ts_library(
6+
name = "relative-module",
7+
srcs = ["lib.ts"],
8+
tsconfig = "//packages/esbuild/test/typescript:tsconfig.json",
9+
)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const getId = () => 'relative-module';

0 commit comments

Comments
 (0)