1- const { dirname, extname } = require ( 'path' ) ;
2- const childProcess = require ( 'child_process' ) ;
1+ const childProcess = require ( 'node:child_process' ) ;
2+ const { dirname, extname } = require ( 'node:path' ) ;
3+ const { isMainThread } = require ( 'node:worker_threads' ) ;
34const { sync : resolve } = require ( 'resolve' ) ;
4- const { isMainThread } = require ( 'worker_threads' ) ;
55
66const { getConfig } = require ( './cfg' ) ;
77const hook = require ( './hook' ) ;
88const { relay, send } = require ( './ipc' ) ;
9+ const { registerLoader } = require ( './register-loader' ) ;
910const resolveMain = require ( './resolve-main' ) ;
1011const suppressExperimentalWarnings = require ( './suppress-experimental-warnings' ) ;
1112
@@ -25,8 +26,14 @@ if (process.env.NODE_DEV_PRELOAD) {
2526 require ( process . env . NODE_DEV_PRELOAD ) ;
2627}
2728
28- // We want to exit on SIGTERM, but defer to existing SIGTERM handlers.
29- process . once ( 'SIGTERM' , ( ) => process . listenerCount ( 'SIGTERM' ) || process . exit ( 0 ) ) ;
29+ const port = registerLoader ( ) ;
30+
31+ process . once ( 'SIGTERM' , ( ) => {
32+ port ?. close ( ) ;
33+ // We want to exit on SIGTERM, but defer to existing SIGTERM handlers.
34+ if ( process . listenerCount ( 'SIGTERM' ) ) return ;
35+ process . exit ( 0 ) ;
36+ } ) ;
3037
3138if ( fork ) {
3239 // Overwrite child_process.fork() so that we can hook into forked processes
0 commit comments