From 9569bf0ffccf786576b9b5ab0a5cf44a3c3ca415 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 9 Sep 2022 12:28:05 -0700 Subject: [PATCH 1/4] Update dev watcher to ignore more accurately --- packages/next/server/dev/next-dev-server.ts | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index d360778905f4184..7f033857266b72d 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -273,9 +273,6 @@ export default class DevServer extends Server { }) } - const wp = (this.webpackWatcher = new Watchpack({ - ignored: /([/\\]node_modules[/\\]|[/\\]\.next[/\\]|[/\\]\.git[/\\])/, - })) const pages = this.pagesDir ? [this.pagesDir] : [] const app = this.appDir ? [this.appDir] : [] const directories = [...pages, ...app] @@ -303,6 +300,24 @@ export default class DevServer extends Server { ] files.push(...tsconfigPaths) + // ignored receives a forward slash normalized path so + // pre-normalize for comparing against + const normalizedFiles = new Set( + files.map((file) => file.replace(/\\/g, '/')) + ) + const normalizedDirectories = directories.map((dir) => + dir.replace(/\\/g, '/') + ) + + const wp = (this.webpackWatcher = new Watchpack({ + ignored: (fileName: string) => { + return ( + !normalizedFiles.has(fileName) && + !normalizedDirectories.some((dir) => fileName.startsWith(dir)) + ) + }, + })) + wp.watch({ directories: [this.dir], startTime: 0 }) const fileWatchTimes = new Map() let enabledTypeScript = this.usingTypeScript From 43522c3f5c939e43e577fece3a0e8a51d5606d76 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 9 Sep 2022 13:12:10 -0700 Subject: [PATCH 2/4] fix check --- packages/next/server/dev/next-dev-server.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index 7f033857266b72d..c0dd525e638e1ec 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -308,10 +308,12 @@ export default class DevServer extends Server { const normalizedDirectories = directories.map((dir) => dir.replace(/\\/g, '/') ) + const normalizedDir = this.dir.replace(/\\/g, '/') const wp = (this.webpackWatcher = new Watchpack({ ignored: (fileName: string) => { return ( + fileName !== normalizedDir && !normalizedFiles.has(fileName) && !normalizedDirectories.some((dir) => fileName.startsWith(dir)) ) From 8e1c69fdcfb77d73dad3440d8c9adc9b45385646 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 9 Sep 2022 14:02:41 -0700 Subject: [PATCH 3/4] fix parent ignoring --- packages/next/server/dev/next-dev-server.ts | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index c0dd525e638e1ec..3a7532e215e25b2 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -276,6 +276,7 @@ export default class DevServer extends Server { const pages = this.pagesDir ? [this.pagesDir] : [] const app = this.appDir ? [this.appDir] : [] const directories = [...pages, ...app] + const files = this.pagesDir ? getPossibleMiddlewareFilenames( pathJoin(this.pagesDir, '..'), @@ -293,6 +294,9 @@ export default class DevServer extends Server { files.push(...envFiles) + console.log('directories', directories) + console.log('files', files) + // tsconfig/jsonfig paths hot-reloading const tsconfigPaths = [ pathJoin(this.dir, 'tsconfig.json'), @@ -300,22 +304,11 @@ export default class DevServer extends Server { ] files.push(...tsconfigPaths) - // ignored receives a forward slash normalized path so - // pre-normalize for comparing against - const normalizedFiles = new Set( - files.map((file) => file.replace(/\\/g, '/')) - ) - const normalizedDirectories = directories.map((dir) => - dir.replace(/\\/g, '/') - ) - const normalizedDir = this.dir.replace(/\\/g, '/') - const wp = (this.webpackWatcher = new Watchpack({ - ignored: (fileName: string) => { + ignored: (pathname: string) => { return ( - fileName !== normalizedDir && - !normalizedFiles.has(fileName) && - !normalizedDirectories.some((dir) => fileName.startsWith(dir)) + !files.some((file) => file.startsWith(pathname)) && + !directories.some((dir) => pathname.startsWith(dir)) ) }, })) From 6d3eb1ed76fb48315592ac2b8a288f6e8659be9f Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 9 Sep 2022 14:37:39 -0700 Subject: [PATCH 4/4] remove logs --- packages/next/server/dev/next-dev-server.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index 3a7532e215e25b2..11cbc454c0cd7b3 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -294,9 +294,6 @@ export default class DevServer extends Server { files.push(...envFiles) - console.log('directories', directories) - console.log('files', files) - // tsconfig/jsonfig paths hot-reloading const tsconfigPaths = [ pathJoin(this.dir, 'tsconfig.json'),