You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Relax engines.node from >= 20 to >= 10 (N-API 3 runtime compatibility) #20491
The @tailwindcss/oxide package.json currently sets:
"engines": {
"node": ">= 20"
}
This prevents installation and usage on Node.js versions below 20, even though the package's prebuilt native binaries are compiled against N-API version 3.
Expected behavior
The engines.node field should reflect runtime compatibility, not build-time requirements. Since @tailwindcss/oxide uses N-API 3, the runtime compatibility should be:
"engines": {
"node": ">= 10"
}
Why this matters
N-API 3 is stable and supported since Node.js 10.0.0 (and experimentally since 8.11.0).
See: N-API version matrix
The >= 20 constraint is only necessary for building from source, not for consuming the prebuilt binaries distributed via npm.
Many projects (CI/CD pipelines, Docker images, legacy systems) still run on Node.js 14/16/18 LTS versions that fully support N-API 3. The current engines restriction forces unnecessary upgrades.
Other N-API packages in the ecosystem (e.g. via napi-rs) typically set engines to match the N-API version they target, not the toolchain used to build them.
Proposed change
Update package.json to:
"engines": {
"node": ">= 10"
}
Or, if you prefer a more conservative lower bound that still aligns with N-API 3:
"engines": {
"node": ">= 12"
}
Additional context
Package name: @tailwindcss/oxide
Current version: (e.g. 4.3.3)
N-API version used: 3
Build toolchain: likely napi-rs based on project structure
Thank you for considering this change! Appreciate all the work on Tailwind CSS.
Activity
Relax engines.node in @tailwindcss/oxide to >= 10 for N-API 3 compati…