Skip to content

[Bug]: rules_nodejs breaks with Node.js 24.12.0  #3887

@alan-agius4

Description

@alan-agius4

What happened?

rules_nodejs is no compatible with Node.js version 24.12.0

ERROR: Traceback (most recent call last):
        File "/xxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/rules_nodejs++node+nodejs_linux_amd64/BUILD.bazel", line 20, column 14, in <toplevel>
                srcs = glob(["bin/nodejs/**"]) + [":node_files"],
Error in glob: glob pattern 'bin/nodejs/**' didn't match anything, but allow_empty is set to False (the default value of allow_empty can be set with --incompatible_disallow_empty_glob).
ERROR: /xxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/rules_nodejs++node+nodejs_linux_amd64/BUILD.bazel: no such target '@@rules_nodejs++node+nodejs_linux_amd64//:toolchain': target 'toolchain' not declared in package '' defined by /xxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/rules_nodejs++node+nodejs_linux_amd64/BUILD.bazel
ERROR: /xxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/rules_angular+/src/ng_package/text_replace/BUILD.bazel:23:10: Target '@@rules_angular+//src/ng_package/text_replace:bin' depends on toolchain '@@rules_nodejs++node+nodejs_linux_amd64//:toolchain', which cannot be found: no such target '@@rules_nodejs++node+nodejs_linux_amd64//:toolchain': target 'toolchain' not declared in package '' defined by /xxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/rules_nodejs++node+nodejs_linux_amd64/BUILD.bazel'
ERROR: Analysis of target '//ng-dev:npm_package' failed; build aborted: Analysis failed
INFO: Elapsed time: 0.746s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
ERROR: Build did NOT complete successfully

Version

Development (host) and target OS/architectures:

linux x64

Output of bazel --version:

bazel 8.5.0
bazel_dep(name = "rules_nodejs", version = "6.6.2")

node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
node.toolchain(node_version = "24.12.0")
use_repo(node, "nodejs_toolchains")

Additional Information

Using --incompatible_disallow_empty_glob=false is not enough as eventually it will lead to missing input files errors example:

INFO: Analyzed target //ng-dev:npm_package (664 packages loaded, 3756 targets configured).
ERROR: /xxxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/aspect_rules_esbuild++esbuild+esbuild_linux-x64/BUILD.bazel:11:10: Middleman _middlemen/external_Saspect_Urules_Uesbuild++esbuild+esbuild_Ulinux-x64_Slauncher_U_Slauncher-runfiles failed: missing input file '@@rules_nodejs++node+nodejs_linux_amd64//:bin/nodejs/bin/node'
ERROR: /xxxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/aspect_rules_esbuild++esbuild+esbuild_linux-x64/BUILD.bazel:11:10: Middleman _middlemen/external_Saspect_Urules_Uesbuild++esbuild+esbuild_Ulinux-x64_Slauncher_U_Slauncher-runfiles failed: 1 input file(s) do not exist
Target //ng-dev:npm_package failed to build
Use --verbose_failures to see the command lines of failed build steps.
ERROR: /xxxxx/d43f8d31ece3ad743d4ef7464bdac2b6/external/aspect_rules_esbuild++esbuild+esbuild_linux-x64/BUILD.bazel:11:10 Middleman _middlemen/external_Saspect_Urules_Uesbuild++esbuild+esbuild_Ulinux-x64_Slauncher_U_Slauncher-runfiles failed: 1 input file(s) do not exist
INFO: Elapsed time: 10.587s, Critical Path: 0.05s
INFO: 1 process: 1868 action cache hit, 1 internal.
ERROR: Build did NOT complete successfully
 ELIFECYCLE  Command failed with exit code 1.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions