Skip to content

Commit 476e377

Browse files
Select suitable Node.js version at rollup-time for emscripten image
Emscripten builder image has two Node.js, installed with Emscripten and nodesource distribution. Recent rollup requires Node.js newer than 15, but the one installed with Emscripten is too old (v12). Therefore, we need to prefer nodesource distributed one at rollup-time. Ideally, we should update Emscripten base image version and avoid multi-version Node.js toolchains.
1 parent 6643bc3 commit 476e377

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

packages/npm-packages/ruby-wasm-emscripten/build-package.sh

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,26 @@ ruby_root="$1"
1414
package_dir="$(cd "$(dirname "$0")" && pwd)"
1515
dist_dir="$package_dir/dist"
1616

17+
find_compatible_node() {
18+
# Find `node` executable (>= 15) in PATH
19+
IFS=':' read -ra dirs <<< "$PATH"
20+
for dir in "${dirs[@]}"; do
21+
if [ -x "$dir/node" ]; then
22+
node_version=$("$dir/node" --version)
23+
if [ "${node_version:1:2}" -ge 15 ]; then
24+
echo "$dir/node"
25+
return
26+
fi
27+
fi
28+
done
29+
echo "node >= 15 is required to build the package" >&2
30+
exit 1
31+
}
32+
1733
mkdir -p "$dist_dir"
1834

35+
nodejs="$(find_compatible_node)"
36+
1937
cp "$ruby_root/usr/local/bin/ruby.wasm" "$dist_dir/ruby.wasm"
2038
cp "$ruby_root/usr/local/bin/ruby" "$dist_dir/ruby.js"
2139

@@ -34,4 +52,4 @@ echo "export function loadRubyStdlib() {" >> "$ruby_stdlib_js"
3452
--exclude '*.gem' --exclude "libruby-static.a" >> "$ruby_stdlib_js"
3553
echo "}" >> "$ruby_stdlib_js"
3654

37-
(cd "$package_dir" && npm run build)
55+
(cd "$package_dir" && PATH="$(dirname "$nodejs"):$PATH" npm run build)

0 commit comments

Comments
 (0)