tsconfig.json had no noEmit option: every caller passed --noEmit on the CLI (typecheck, scripts/build/desktop.mjs), but one bare `tsc --build tsconfig.json` emitted 2194 .js twins in-place across src/ and electron/, and module resolution then preferred those stale .js files over the .ts sources — tests ran against dead code until the twins were deleted. Make it structural: noEmit true in the renderer base; the composite electron/e2e children (which legally emit declarations into build/electron-types / scratch) opt back out with noEmit false. Verified: the typecheck trio stays clean, a bare tsc --build of the renderer now emits nothing, and the electron dev build still produces its build/electron-types declarations with zero in-place files.
33 lines
1.0 KiB
JSON
33 lines
1.0 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2023",
|
|
"useDefineForClassFields": true,
|
|
"lib": ["DOM", "DOM.Iterable", "ES2023"],
|
|
"types": ["node"],
|
|
"allowJs": false,
|
|
"skipLibCheck": true,
|
|
"esModuleInterop": true,
|
|
"allowSyntheticDefaultImports": true,
|
|
"strict": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"module": "ESNext",
|
|
"moduleResolution": "Bundler",
|
|
"resolveJsonModule": true,
|
|
"isolatedModules": true,
|
|
"jsx": "react-jsx",
|
|
"noEmit": true,
|
|
"paths": {
|
|
"@/*": ["./src/*"],
|
|
"@hermes/plugin-sdk": ["./src/sdk/index.ts"],
|
|
"@hermes/shared/ansi": ["../shared/src/ansi.ts"],
|
|
"@hermes/shared/billing": ["../shared/src/billing-types.ts"],
|
|
"@hermes/shared/color": ["../shared/src/color.ts"],
|
|
"@hermes/shared/i18n": ["../shared/src/i18n.ts"],
|
|
"@hermes/shared/translucency": ["../shared/src/translucency.ts"],
|
|
"@hermes/shared": ["../shared/src/index.ts"]
|
|
}
|
|
},
|
|
"include": ["src", "../shared/src"],
|
|
"exclude": ["e2e", "electron", "playwright.config.ts"]
|
|
}
|