From 3a9a24b7c9017cd141347a3037c400610acf97a9 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 7 Jul 2025 14:02:23 +0900 Subject: [PATCH 1/2] chore: use `n/prefer-node-protocol` rule --- eslint.config.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index ec419d26df99cf..c3d29eba5a5b21 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,5 +1,5 @@ // @ts-check -import { builtinModules, createRequire } from 'node:module' +import { createRequire } from 'node:module' import eslint from '@eslint/js' import pluginN from 'eslint-plugin-n' import pluginImportX from 'eslint-plugin-import-x' @@ -113,6 +113,7 @@ export default tseslint.config( allowModules: ['vite'], }, ], + 'n/prefer-node-protocol': 'error', '@typescript-eslint/ban-ts-comment': 'error', '@typescript-eslint/no-unsafe-function-type': 'off', @@ -157,10 +158,6 @@ export default tseslint.config( '@typescript-eslint/prefer-for-of': 'off', '@typescript-eslint/prefer-function-type': 'off', - 'import-x/no-nodejs-modules': [ - 'error', - { allow: builtinModules.map((mod) => `node:${mod}`) }, - ], 'import-x/no-duplicates': 'error', 'import-x/order': [ 'error', From a24371f85827a36ce27399a64004bfeca6d8f666 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 7 Jul 2025 16:18:05 +0900 Subject: [PATCH 2/2] chore: update --- .../vite/src/node/ssr/runtime/__tests__/fixtures/native.js | 2 +- playground/cli-module/vite.config.js | 2 +- playground/object-hooks/vite.config.ts | 2 +- .../optimize-deps/dep-cjs-browser-field-bare/internal.js | 2 +- playground/optimize-deps/dep-cjs-with-external-deps/index.js | 2 +- playground/optimize-deps/dep-with-builtin-module-cjs/index.js | 4 ++-- playground/optimize-deps/dep-with-builtin-module-esm/index.js | 4 ++-- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/native.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/native.js index 8908ac97d12303..4847508cfac9db 100644 --- a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/native.js +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/native.js @@ -1,3 +1,3 @@ export { existsSync } from 'node:fs' -// eslint-disable-next-line import-x/no-nodejs-modules -- testing that importing without node prefix works +// eslint-disable-next-line n/prefer-node-protocol -- testing that importing without node prefix works export { readdirSync } from 'fs' diff --git a/playground/cli-module/vite.config.js b/playground/cli-module/vite.config.js index dedbf2ef658f86..a6751c893ea244 100644 --- a/playground/cli-module/vite.config.js +++ b/playground/cli-module/vite.config.js @@ -1,4 +1,4 @@ -// eslint-disable-next-line import-x/no-nodejs-modules +// eslint-disable-next-line n/prefer-node-protocol import { URL } from 'url' import { defineConfig } from 'vite' diff --git a/playground/object-hooks/vite.config.ts b/playground/object-hooks/vite.config.ts index ac25d69ba85a17..ab64a7d42fe59f 100644 --- a/playground/object-hooks/vite.config.ts +++ b/playground/object-hooks/vite.config.ts @@ -1,4 +1,4 @@ -/* eslint-disable import-x/no-nodejs-modules */ +/* eslint-disable n/prefer-node-protocol */ import assert from 'assert' import { defineConfig } from 'vite' diff --git a/playground/optimize-deps/dep-cjs-browser-field-bare/internal.js b/playground/optimize-deps/dep-cjs-browser-field-bare/internal.js index 5bd55071bfcc48..8590297e4c5138 100644 --- a/playground/optimize-deps/dep-cjs-browser-field-bare/internal.js +++ b/playground/optimize-deps/dep-cjs-browser-field-bare/internal.js @@ -1,6 +1,6 @@ 'use strict' -// eslint-disable-next-line import-x/no-nodejs-modules +// eslint-disable-next-line n/prefer-node-protocol const events = require('events') module.exports = 'foo' in events ? 'pong' : '' diff --git a/playground/optimize-deps/dep-cjs-with-external-deps/index.js b/playground/optimize-deps/dep-cjs-with-external-deps/index.js index 93fe8c56557cf3..b0a9600ce4feb9 100644 --- a/playground/optimize-deps/dep-cjs-with-external-deps/index.js +++ b/playground/optimize-deps/dep-cjs-with-external-deps/index.js @@ -1,5 +1,5 @@ // `stream` is used as the package name for `@vitejs/test-dep-esm-dummy-node-builtin` so that it is treated like a Node builtin -// eslint-disable-next-line import-x/no-nodejs-modules +// eslint-disable-next-line n/prefer-node-protocol const externalDummyNodeBuiltin = require('stream') const external = require('@vitejs/test-dep-esm-external') // eslint-disable-next-line no-prototype-builtins diff --git a/playground/optimize-deps/dep-with-builtin-module-cjs/index.js b/playground/optimize-deps/dep-with-builtin-module-cjs/index.js index 17c7253a0d842e..42fa6022cf4406 100644 --- a/playground/optimize-deps/dep-with-builtin-module-cjs/index.js +++ b/playground/optimize-deps/dep-with-builtin-module-cjs/index.js @@ -1,7 +1,7 @@ // no node: protocol intentionally -// eslint-disable-next-line import-x/no-nodejs-modules +// eslint-disable-next-line n/prefer-node-protocol const fs = require('fs') -// eslint-disable-next-line import-x/no-nodejs-modules +// eslint-disable-next-line n/prefer-node-protocol const path = require('path') // NOTE: require destructure would error immediately because of how esbuild diff --git a/playground/optimize-deps/dep-with-builtin-module-esm/index.js b/playground/optimize-deps/dep-with-builtin-module-esm/index.js index f2d5fbc2480353..b01d08673c0a65 100644 --- a/playground/optimize-deps/dep-with-builtin-module-esm/index.js +++ b/playground/optimize-deps/dep-with-builtin-module-esm/index.js @@ -1,7 +1,7 @@ // no node: protocol intentionally -// eslint-disable-next-line import-x/no-nodejs-modules +// eslint-disable-next-line n/prefer-node-protocol import { readFileSync } from 'fs' -// eslint-disable-next-line import-x/no-nodejs-modules +// eslint-disable-next-line n/prefer-node-protocol import path from 'path' // access from named import