diff --git a/README.md b/README.md index 9192ae2..64b7908 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ export default defineConfig( }, server: { // server settings + tsconfigFileName: 'custom-tsconfig.json', }, }; }, @@ -143,6 +144,8 @@ All server settings are used only in dev mode: - `watchThrottle` (`number`) — use to add an extra throttle, or delay restarting. - `inspect/inspectBrk` (`number | true`) — listen for a debugging client on specified port. If specified `true`, try to listen on `9229`. +- `tsconfig` (`string`) — name of the tsconfig file for server build. + Default: `tsconfig.json`. ### Client diff --git a/src/commands/build/build-service/server.ts b/src/commands/build/build-service/server.ts index ae52add..7163bd3 100644 --- a/src/commands/build/build-service/server.ts +++ b/src/commands/build/build-service/server.ts @@ -10,6 +10,8 @@ export function buildServer(config: NormalizedServiceConfig): Promise { createRunFolder(); return new Promise((resolve, reject) => { + const tsconfigFileName = config.server.tsconfigFileName || 'tsconfig.json'; + const build = new ControllableScript( ` let ts; @@ -27,7 +29,11 @@ export function buildServer(config: NormalizedServiceConfig): Promise { )}); const logger = new Logger('server', ${config.verbose}); - compile(ts, {logger, projectPath: ${JSON.stringify(paths.appServer)}}); + compile(ts, { + logger, + projectPath: ${JSON.stringify(paths.appServer)}, + configFileName: ${JSON.stringify(tsconfigFileName)} + }); `, null, ); diff --git a/src/commands/dev/server.ts b/src/commands/dev/server.ts index b7c6a62..5b77e12 100644 --- a/src/commands/dev/server.ts +++ b/src/commands/dev/server.ts @@ -13,6 +13,8 @@ export async function watchServerCompilation(config: NormalizedServiceConfig) { createRunFolder(); + const tsconfigFileName = config.server.tsconfigFileName || 'tsconfig.json'; + const build = new ControllableScript( ` let ts; @@ -38,7 +40,8 @@ export async function watchServerCompilation(config: NormalizedServiceConfig) { onAfterFilesEmitted: () => { process.send({type: 'Emitted'}); }, - enableSourceMap: true + enableSourceMap: true, + tsconfigFileName: ${JSON.stringify(tsconfigFileName)} } ); `, diff --git a/src/common/models/index.ts b/src/common/models/index.ts index af994c3..d9579b2 100644 --- a/src/common/models/index.ts +++ b/src/common/models/index.ts @@ -285,6 +285,11 @@ export interface ServerConfig { watchThrottle?: number; inspect?: number | true; inspectBrk?: number | true; + /** + * Name of the tsconfig file for server build + * Default: 'tsconfig.json' + */ + tsconfigFileName?: string; } export interface ServiceConfig { target?: 'client' | 'server'; diff --git a/src/common/typescript/watch.ts b/src/common/typescript/watch.ts index 5e6d97b..e4288af 100644 --- a/src/common/typescript/watch.ts +++ b/src/common/typescript/watch.ts @@ -11,11 +11,17 @@ export function watch( logger, onAfterFilesEmitted, enableSourceMap, - }: {logger: Logger; onAfterFilesEmitted?: () => void; enableSourceMap?: boolean}, + tsconfigFileName, + }: { + logger: Logger; + onAfterFilesEmitted?: () => void; + enableSourceMap?: boolean; + tsconfigFileName: string; + }, ) { logger.message('Start compilation in watch mode'); logger.message(`Typescript v${ts.version}`); - const configPath = getTsProjectConfigPath(ts, projectPath); + const configPath = getTsProjectConfigPath(ts, projectPath, tsconfigFileName); const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram;