Relax `engines.node` from `>= 20` to `>= 10` (N-API 3 runtime compatibility)
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 matrixThe
>= 20constraint 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
enginesrestriction forces unnecessary upgrades.Other N-API packages in the ecosystem (e.g. via
napi-rs) typically setenginesto 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-rsbased on project structure
Thank you for considering this change! Appreciate all the work on Tailwind CSS.
Source: tailwindlabs/tailwindcss