Skip to content

Commit 1897968

Browse files
committed
perf(dev): warm a single fork by default, overridable with NUXT_DEV_FORK_POOL_SIZE
1 parent 9a10f71 commit 1897968

3 files changed

Lines changed: 22 additions & 2 deletions

File tree

‎packages/nuxt-cli/src/commands/dev.ts‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ const command = defineCommand({
171171

172172
constpool=newForkPool({
173173
rawArgs: ctx.rawArgs,
174-
poolSize: 2,
174+
poolSize: resolveForkPoolSize(),
175175
listenOverrides,
176176
inspect,
177177
})
@@ -276,6 +276,19 @@ function setupSignalHandlers(close: () => Promise<void>): void {
276276
}
277277
}
278278

279+
functionresolveForkPoolSize(): number|undefined{
280+
constraw=process.env.NUXT_DEV_FORK_POOL_SIZE
281+
if(!raw){
282+
returnundefined
283+
}
284+
constparsed=Number(raw)
285+
if(!Number.isInteger(parsed)||parsed<0){
286+
logger.warn(`Ignoring invalid \`NUXT_DEV_FORK_POOL_SIZE=${raw}\`; expected a non-negative integer.`)
287+
returnundefined
288+
}
289+
returnparsed
290+
}
291+
279292
functionparsePositiveInteger(value: string|undefined): number|undefined{
280293
constparsed=Number(value)
281294
if(!value||!Number.isInteger(parsed)||parsed<=0){

‎packages/nuxt-cli/src/dev/pool.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class ForkPool {
3030

3131
constructor(options: ForkPoolOptions){
3232
this.rawArgs=options.rawArgs
33-
this.poolSize=options.poolSize??2
33+
this.poolSize=options.poolSize??1
3434
this.listenOverrides=options.listenOverrides
3535
this.inspect=options.inspect
3636

‎packages/nuxt-cli/test/unit/fork-pool.spec.ts‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ afterEach(async () => {
2828
})
2929

3030
describe('forkPool',()=>{
31+
it('should warm a single fork by default',{timeout: 30_000},async()=>{
32+
constpool=createPool()
33+
pool.startWarming()
34+
awaitwaitForReady(pool,1)
35+
expect(pool.getStats().total).toBe(1)
36+
})
37+
3138
it('should kill every fork on shutdown',{timeout: 30_000},async()=>{
3239
constpool=createPool(3)
3340
pool.startWarming()

0 commit comments

Comments
 (0)