diff --git a/CHANGELOG.md b/CHANGELOG.md index 9330bdf0f1d5..835bb5096955 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ ### Performance +- `jest-config` perf: only register ts-node once when loading TS config files ([#12160](https://github.com/facebook/jest/pull/12160)) + ## 27.4.5 ### Fixes diff --git a/packages/jest-config/src/readConfigFileAndSetRootDir.ts b/packages/jest-config/src/readConfigFileAndSetRootDir.ts index 09a2aaa8c896..6bf555c77911 100644 --- a/packages/jest-config/src/readConfigFileAndSetRootDir.ts +++ b/packages/jest-config/src/readConfigFileAndSetRootDir.ts @@ -79,15 +79,15 @@ export default async function readConfigFileAndSetRootDir( return configObject; } +let registerer: Service; + // Load the TypeScript configuration const loadTSConfigFile = async ( configPath: Config.Path, ): Promise => { - let registerer: Service; - // Register TypeScript compiler instance try { - registerer = require('ts-node').register({ + registerer ||= require('ts-node').register({ compilerOptions: { module: 'CommonJS', },