Skip to content

Commit f2fe447

Browse files
committed
chore: enforce .js file extensions in imports via nodenext module resolution
Switch tsconfig from moduleResolution "bundler" to "nodenext" to enforce explicit .js extensions on all relative imports. This provides IDE-level enforcement (ts(2835) errors) and tsc --noEmit validation. - Change module/moduleResolution to "nodenext" - Remove allowImportingTsExtensions (no longer needed) - Fix all relative imports to use .js extensions - Exclude vite submodule symlinks from type-checking (packages/core/)
1 parent 0aab18b commit f2fe447

15 files changed

Lines changed: 35 additions & 31 deletions

File tree

packages/cli/build.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import {
3838
ModuleKind,
3939
} from 'typescript';
4040

41-
import { generateLicenseFile } from '../../scripts/generate-license.ts';
41+
import { generateLicenseFile } from '../../scripts/generate-license.js';
4242
import corePkg from '../core/package.json' with { type: 'json' };
4343
import testPkg from '../test/package.json' with { type: 'json' };
4444

@@ -115,7 +115,7 @@ async function buildNapiBinding() {
115115
});
116116

117117
const outputs = await task;
118-
const viteConfig = await import('../../vite.config');
118+
const viteConfig = await import('../../vite.config.js');
119119
for (const output of outputs) {
120120
if (output.kind !== 'node') {
121121
const { code, errors } = await format(output.path, await readFile(output.path, 'utf8'), {

packages/cli/src/__tests__/index.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
defaultBrowserPort,
99
defineConfig,
1010
defineProject,
11-
} from '../index';
11+
} from '../index.js';
1212

1313
test('should keep vitest exports stable', () => {
1414
expect(defineConfig).toBeTypeOf('function');

packages/cli/src/__tests__/pack.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
resolveUserConfig,
99
buildWithConfigs,
1010
enableDebug,
11-
} from '../pack';
11+
} from '../pack.js';
1212

1313
test('should export all pack APIs from @voidzero-dev/vite-plus-core/pack', () => {
1414
expect(defineConfig).toBeTypeOf('function');

packages/cli/src/__tests__/resolve-vite-config.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import path from 'node:path';
55

66
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
77

8-
import { findViteConfigUp } from '../resolve-vite-config';
8+
import { findViteConfigUp } from '../resolve-vite-config.js';
99

1010
describe('findViteConfigUp', () => {
1111
let tempDir: string;

packages/cli/src/define-config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
type ConfigEnv,
44
} from '@voidzero-dev/vite-plus-test/config';
55

6-
import type { UserConfig } from './index';
6+
import type { UserConfig } from './index.js';
77

88
type ViteUserConfigFnObject = (env: ConfigEnv) => UserConfig;
99
type ViteUserConfigFnPromise = (env: ConfigEnv) => Promise<UserConfig>;

packages/cli/src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import type { OxfmtConfig } from 'oxfmt';
33
import type { OxlintConfig } from 'oxlint';
44

55
import { defineConfig } from './define-config.js';
6-
import type { PackUserConfig } from './pack';
7-
import type { RunConfig } from './run-config';
8-
import type { StagedConfig } from './staged-config';
6+
import type { PackUserConfig } from './pack.js';
7+
import type { RunConfig } from './run-config.js';
8+
import type { StagedConfig } from './staged-config.js';
99

1010
declare module '@voidzero-dev/vite-plus-core' {
1111
interface UserConfig {

packages/cli/templates/generator/bin/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
import { runTemplateCLI } from 'bingo';
44

5-
import template from '../src/template.ts';
5+
import template from '../src/template.js';
66

77
process.exitCode = await runTemplateCLI(template);

packages/core/build-support/find-create-require.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
type VariableDeclarator,
1111
} from 'oxc-parser';
1212

13-
import { createModuleEntryFileName } from './build-cjs-deps';
13+
import { createModuleEntryFileName } from './build-cjs-deps.js';
1414

1515
// Node.js built-in modules (without node: prefix)
1616
const nodeBuiltins = new Set(builtinModules);

packages/core/build.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ import { build, type BuildOptions } from 'rolldown';
1515
import { dts } from 'rolldown-plugin-dts';
1616
import { glob } from 'tinyglobby';
1717

18-
import { generateLicenseFile } from '../../scripts/generate-license.ts';
19-
import { buildCjsDeps } from './build-support/build-cjs-deps';
20-
import { replaceThirdPartyCjsRequires } from './build-support/find-create-require';
21-
import { RewriteImportsPlugin } from './build-support/rewrite-imports';
18+
import { generateLicenseFile } from '../../scripts/generate-license.js';
19+
import { buildCjsDeps } from './build-support/build-cjs-deps.js';
20+
import { replaceThirdPartyCjsRequires } from './build-support/find-create-require.js';
21+
import { RewriteImportsPlugin } from './build-support/rewrite-imports.js';
2222
import {
2323
createRolldownRewriteRules,
2424
createViteRewriteRules,
2525
rewriteModuleSpecifiers,
2626
type ReplacementRule,
27-
} from './build-support/rewrite-module-specifiers';
27+
} from './build-support/rewrite-module-specifiers.js';
2828
import pkgJson from './package.json' with { type: 'json' };
29-
import viteRolldownConfig from './vite-rolldown.config';
29+
import viteRolldownConfig from './vite-rolldown.config.js';
3030

3131
const projectDir = join(fileURLToPath(import.meta.url), '..');
3232

packages/test/build.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ import { format } from 'oxfmt';
5656
import { build } from 'rolldown';
5757
import { dts } from 'rolldown-plugin-dts';
5858

59-
import { generateLicenseFile } from '../../scripts/generate-license.ts';
59+
import { generateLicenseFile } from '../../scripts/generate-license.js';
6060
import pkg from './package.json' with { type: 'json' };
6161

6262
const projectDir = dirname(fileURLToPath(import.meta.url));

0 commit comments

Comments
 (0)