diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 87c34b6a8bf843..7119b954339b38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,7 +63,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node_version: [20, 22] + node_version: [20, 22, 24] include: # Active LTS + other OS - os: macos-latest diff --git a/packages/vite/src/node/__tests__/runnerImport.spec.ts b/packages/vite/src/node/__tests__/runnerImport.spec.ts index d6084b84bbbf30..9f3530559806c1 100644 --- a/packages/vite/src/node/__tests__/runnerImport.spec.ts +++ b/packages/vite/src/node/__tests__/runnerImport.spec.ts @@ -4,6 +4,10 @@ import { loadConfigFromFile } from 'vite' import { runnerImport } from '../ssr/runnerImport' import { slash } from '../../shared/utils' +const [nvMajor, nvMinor] = process.versions.node.split('.').map(Number) +const isTypeStrippingSupported = + (nvMajor === 23 && nvMinor >= 6) || nvMajor >= 24 + describe('importing files using inlined environment', () => { const fixture = (name: string) => resolve(import.meta.dirname, './fixtures/runner-import', name) @@ -51,15 +55,17 @@ describe('importing files using inlined environment', () => { ]) // confirm that it fails with a bundle approach - await expect(async () => { - const root = resolve(import.meta.dirname, './fixtures/runner-import') - await loadConfigFromFile( - { mode: 'production', command: 'serve' }, - resolve(root, './vite.config.outside-pkg-import.mts'), - root, - 'silent', - ) - }).rejects.toThrow('Unknown file extension ".ts"') + if (!isTypeStrippingSupported) { + await expect(async () => { + const root = resolve(import.meta.dirname, './fixtures/runner-import') + await loadConfigFromFile( + { mode: 'production', command: 'serve' }, + resolve(root, './vite.config.outside-pkg-import.mts'), + root, + 'silent', + ) + }).rejects.toThrow('Unknown file extension ".ts"') + } }) test('dynamic import', async () => {