feat(node): Bump engines field to require Node.js 20.19.0+ for ESM support#13879
Merged
feat(node): Bump engines field to require Node.js 20.19.0+ for ESM support#13879
engines field to require Node.js 20.19.0+ for ESM support#13879Conversation
Contributor
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. |
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Bump
Bump Sep 18, 2025
engines field of package.json in oxlint and oxfmt NPM packagesengines field to require Node.js 20.19.0+ for ESM support
Copilot stopped work on behalf of
Boshen due to an error
September 18, 2025 11:58
engines field to require Node.js 20.19.0+ for ESM supportengines field to require Node.js 20.19.0+ for ESM support
Contributor
There was a problem hiding this comment.
Pull Request Overview
Updates Node.js engine requirements across 8 package.json files to ensure compatibility with ESM support, specifically requiring Node.js versions that support require(ESM) functionality.
- Standardizes minimum Node.js version to
^20.19.0 || >=22.12.0across all packages - Replaces inconsistent version requirements ranging from Node.js 6.9.0 to 20.0.0
- Addresses ESM compatibility requirements for the oxlint package conversion
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tasks/e2e/tests/nestjs/package.json | Updates Node.js requirement from >=20.0.0 to support ESM features |
| npm/runtime/package.json | Updates Node.js requirement from >=6.9.0 to support ESM features |
| npm/oxlint/package.json | Updates Node.js requirement from >=8.* to support ESM features |
| npm/oxfmt/package.json | Updates Node.js requirement from >=8.* to support ESM features |
| napi/transform/package.json | Updates Node.js requirement from >=14.0.0 to support ESM features |
| napi/parser/package.json | Updates Node.js requirement from >=20.0.0 to support ESM features |
| napi/minify/package.json | Updates Node.js requirement from >=14.0.0 to support ESM features |
| apps/oxlint/package.json | Updates Node.js requirement from >=20.0.0 to support ESM features |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
This was referenced Sep 18, 2025
camc314
added a commit
that referenced
this pull request
Sep 23, 2025
## [1.17.0] - 2025-09-23 ### 🚀 Features - f47f978 linter/plugins: Add `definePlugin` API (#14008) (overlookmotel) - 3e117c6 linter/plugins: Add `defineRule` API (#13945) (overlookmotel) - 2dc8adb linter/plugins: Add `createOnce` API (#13944) (overlookmotel) - bef8753 linter/plugins: ESTree-compatible AST for JS plugins (#13942) (overlookmotel) - 55c2e11 editor: Add `oxc.fmt.experimental` flag (#13923) (Sysix) - a21ff54 language_server: Introduce `ServerFormatter` (#13700) (Sysix) - a14aa79 npm/oxlint: Convert to ES modules (#13876) (Boshen) - 15eb326 linter: Add `vue/no-required-prop-with-default` rule (#13613) (yefan) - 5d3ba00 linter: Add `vue/require-typed-ref` rule (#13857) (yefan) - b52389a node: Bump `engines` field to require Node.js 20.19.0+ for ESM support (#13879) (Copilot) - 8221a01 linter: Add `eslint/no-misleading-character-class` (#13365) (Sysix) - c75ae8c linter/plugins: Add options to `Context` (#13810) (overlookmotel) - 53d04dd linter: Convert `oxlint` to NAPI app (#13723) (overlookmotel) ### 🐛 Bug Fixes - 1f4be38 napi/parser: Generate `.d.mts` extension for types (#14038) (Daniel Roe) - a018756 linter/plugins: Pin `tsdown` dependency to 0.15.1 (#14005) (overlookmotel) - b8790c2 language_server: Output correct position for parser & semantic errors (#14010) (Sysix) - 4d3c6e1 linter: Support let-chains in codegen node type detection (#14006) (camc314) - a34918a linter/plugins: Avoid lint warnings compiling WASM or big-endian (#13968) (overlookmotel) - 27022ab linter/switch-case-braces: Add support for string including colon on case expression (#13687) (Lukinoh) - dd3843f linter: Set package version in `package.json` (#13890) (overlookmotel) - fa866b3 linter: Sort optimized/unoptimized diagnostics before comparison (#13850) (camc314) - fac7624 linter/plugins: Improve error for no JS plugins (#13858) (overlookmotel) ### 🚜 Refactor - bb040bc parser, linter: Replace `.mjs` files with `.js` (#14045) (overlookmotel) - b353750 linter/plugins: Remove unnecessary `Serialize` derives (#14031) (overlookmotel) - 0d48511 linter/plugins: Improve handling `Context` method calls in `createOnce` (#14032) (overlookmotel) - 36ac0fb language_server: Don't create `mpsc` channel (#14011) (Sysix) - 2e9ae3f linter: Make disable directives own the rule name (#13987) (camc314) - 6bc7664 oxlint: Run oxlint before tsgolint (#13519) (camc314) - 0c93f33 language_server: Use minimal text edit for `ServerFormatter` (#13960) (Sysix) - 823cb57 langauge_server: Move `Backend` into own file (#13955) (Sysix) - dc700f5 language_server: Introduce `LSPFileSystem` (#13731) (Sysix) - 42e2c1d linter: Remove `Rc` from `DisableDirectives` (#13924) (camc314) - ac3e9e9 napi/parser: Move JS code into `src-js` directory (#13899) (overlookmotel) - e90bfe3 linter: Remove double reference in unicorn/error-message (#13916) (camc314) - 83791a0 linter: Remove double reference in vue/jsx-no-undef (#13915) (camc314) - ebd22de linter: Remove double reference in vue/require-typed-ref (#13914) (camc314) - 873e231 language_server: Move `needs_linter_restart` to `ServerLinter` (#13834) (Sysix) - 7e0d736 linter/plugins: Rename `--experimental-js-plugins` to `--js-plugins` (#13860) (overlookmotel) - 6245c8c linter/plugins: Make `Context` properties getters (#13809) (overlookmotel) - a2342a6 linter/plugins: Import named in tests (#13807) (overlookmotel) ### 📚 Documentation - 601c876 linter: Add comment explaining why Mimalloc is feature-gated (#14037) (overlookmotel) ### ⚡ Performance - 4d04c6e linter/plugins: Flatten `LintFileResult` fields (#14033) (overlookmotel) - 06363e0 linter: Add node type codegen support for `match node.kind()` (#13736) (camchenry) - a79af0a linter: Replace `for (... of ...)` loops (#13913) (overlookmotel) - b53292d linter: Use unstable sort where possible (#13818) (sapphi-red) ### 🎨 Styling - 8083740 linter: Import `Serialize` at top level (#14030) (overlookmotel) ### 🧪 Testing - b807b6f language_server: Skip formatter test on windows (#13986) (Sysix) - 2600858 language_server: Add Tester for ServerFormatter (#13969) (Sysix) - 37aadf0 language_server: Add `test_and_snapshot_multiple_file` (#13966) (Sysix) - ad14a41 editor: Fix test setup (#13929) (Sysix) - f51240e linter/plugins: Tests for different import styles (#13859) (overlookmotel) - 407c95e linter/plugins: Check `this` is undefined in visit functions (#13811) (overlookmotel) - f023a22 linter/plugins: Include stack trace in plugin loading errors (#13808) (overlookmotel) ### 💼 Other - 0630d68 linter: Build `oxlint` locally with Mimalloc in release mode (#14034) (overlookmotel) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the
enginesfield in package.json files across the repository to require Node.js versions that supportrequire(ESM)for lazy-loading ESM modules without async.Changes
Updated 8 package.json files to use
"node": "^20.19.0 || >=22.12.0":">=8.*"">=8.*"">=14.0.0"">=14.0.0"">=6.9.0"">=20.0.0"">=20.0.0"">=20.0.0"Rationale
The previous engine requirements were inaccurate - Node.js 8 does not support ESM, which these packages use internally. With #13876 converting the
oxlintpackage to ESM entirely, the minimum Node.js version needs to support:The new version range provides flexibility while ensuring ESM compatibility. Since Node.js 20 is supported until April 2026, this change is considered a bug fix rather than a breaking change.
Fixes #13878.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.