-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Environment:
- Node.js version: v24.6.0
- Platform: macOS (darwin arm64)
- Package: @builder.io/react@^8.2.7
- Compiler: Xcode Command Line Tools
Issue:
Installation of @builder.io/react fails on Node.js 24+ because the isolated-vm dependency requires C++20 compilation support, but the current compilation configuration doesn't enable it.
Urgency:
Node.js 24 will become the LTS version in October 2025, making this a critical compatibility issue that will affect all new projects and LTS migrations.
Root Cause:
Node.js 24+ ships with V8 headers that require C++20 features (concept, requires, etc.), but isolated-vm's build configuration doesn't specify C++20 standard, causing compilation failures.
Key Error Messages:
error: "C++20 or later required."
error: unknown type name 'concept'
error: unknown type name 'requires'
error: a non-type template parameter cannot have type 'ExternalPointerTagRange' (aka 'TagRange') before C++20
Attempted Workarounds:
- ✅ Works: Node.js 22.x
- ❌ Fails: Node.js 24+ (even with --no-node-snapshot flag)
- ❌ Fails: node --no-node-snapshot $(which npm) install @builder.io/react
Expected Behavior:
npm install @builder.io/react should work on all supported Node.js versions, including 24+.
Suggested Solutions:
- Update isolated-vm dependency: Use a version that supports Node.js 24+ with proper C++20 compilation flags
- Replace isolated-vm: Consider alternatives that are compatible with modern Node.js versions
- Build configuration: Ensure C++20 standard is enabled when building native extensions
- Provide prebuilt binaries: Distribute prebuilt binaries for Node.js 24+ to avoid compilation issues
Impact:
This blocks the adoption of Builder.io in projects using modern Node.js versions (24+). With Node.js 24 becoming LTS soon, this will affect all new projects and teams migrating to the latest LTS version.