From 2dbff35de93f44cecb9646f79e5c0d92b7562c4d Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Wed, 2 Apr 2025 09:26:35 +0100 Subject: [PATCH] fix(rspack): allow typechecking during serve #29267 (#30558) ## Current Behavior The `NxRspackAppPlugin` and `NxWebpackAppPlugin` will not provide typechecking if using TS Solution setup because it already has a typecheck target. However, this means that typechecking will not be run during serve. ## Expected Behavior Allow typechecking to run during serve even with TS Solution setup ## Related Issue(s) Fixes #29267 --- packages/rspack/src/plugins/utils/apply-base-config.ts | 9 +++++++-- .../plugins/nx-webpack-plugin/lib/apply-base-config.ts | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/rspack/src/plugins/utils/apply-base-config.ts b/packages/rspack/src/plugins/utils/apply-base-config.ts index d37ab15094..de5ad3a85a 100644 --- a/packages/rspack/src/plugins/utils/apply-base-config.ts +++ b/packages/rspack/src/plugins/utils/apply-base-config.ts @@ -240,8 +240,13 @@ function applyNxDependentConfig( plugins.push(new NxTsconfigPathsRspackPlugin({ ...options, tsConfig })); } - // New TS Solution already has a typecheck target - if (!options?.skipTypeChecking && !isUsingTsSolution) { + // New TS Solution already has a typecheck target but allow it to run during serve + if ( + (!options?.skipTypeChecking && !isUsingTsSolution) || + (isUsingTsSolution && + options?.skipTypeChecking === false && + process.env['WEBPACK_SERVE']) + ) { const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); plugins.push( new TsCheckerRspackPlugin({ diff --git a/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-base-config.ts b/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-base-config.ts index 7b93076ba6..14a8a5eccb 100644 --- a/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-base-config.ts +++ b/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-base-config.ts @@ -243,8 +243,13 @@ function applyNxDependentConfig( plugins.push(new NxTsconfigPathsWebpackPlugin({ ...options, tsConfig })); } - // New TS Solution already has a typecheck target - if (!options?.skipTypeChecking && !isUsingTsSolution) { + // New TS Solution already has a typecheck target but allow it to run during serve + if ( + (!options?.skipTypeChecking && !isUsingTsSolution) || + (isUsingTsSolution && + options?.skipTypeChecking === false && + process.env['WEBPACK_SERVE']) + ) { const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); plugins.push( new ForkTsCheckerWebpackPlugin({