From 23d2e85978b6d9e3e441d879f3f991e0c8cea439 Mon Sep 17 00:00:00 2001 From: Shigma Date: Sun, 25 Sep 2022 15:17:10 +0800 Subject: [PATCH 1/4] fix: cacheDir should be watch-ignored --- packages/vite/src/node/build.ts | 1 + packages/vite/src/node/server/index.ts | 2 +- packages/vite/src/node/watch.ts | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 3ef16ec019c6d5..0608a42cf064e4 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -574,6 +574,7 @@ async function doBuild( } const resolvedChokidarOptions = resolveChokidarOptions( + config, config.build.watch.chokidar ) diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index 57a6a01e1fea12..1a59cb4d40d380 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -304,7 +304,7 @@ export async function createServer( const httpsOptions = await resolveHttpsConfig(config.server.https) const { middlewareMode } = serverConfig - const resolvedWatchOptions = resolveChokidarOptions({ + const resolvedWatchOptions = resolveChokidarOptions(config, { disableGlobbing: true, ...serverConfig.watch }) diff --git a/packages/vite/src/node/watch.ts b/packages/vite/src/node/watch.ts index 47a455a0cd0e76..56740526e0b0e9 100644 --- a/packages/vite/src/node/watch.ts +++ b/packages/vite/src/node/watch.ts @@ -1,6 +1,9 @@ +import path from 'node:path' import type { WatchOptions } from 'dep-types/chokidar' +import type { ResolvedConfig } from '.' export function resolveChokidarOptions( + config: ResolvedConfig, options: WatchOptions | undefined ): WatchOptions { const { ignored = [], ...otherOptions } = options ?? {} @@ -10,6 +13,7 @@ export function resolveChokidarOptions( '**/.git/**', '**/node_modules/**', '**/test-results/**', // Playwright + path.relative(config.root, config.cacheDir + '/**'), ...(Array.isArray(ignored) ? ignored : [ignored]) ], ignoreInitial: true, From 2d2dd7ce29d5cda7ac199db9025f587de15f69af Mon Sep 17 00:00:00 2001 From: Shigma Date: Sat, 3 Dec 2022 09:12:21 +0800 Subject: [PATCH 2/4] fix: apply review comments --- packages/vite/src/node/watch.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/watch.ts b/packages/vite/src/node/watch.ts index 56740526e0b0e9..acaca15e3266d6 100644 --- a/packages/vite/src/node/watch.ts +++ b/packages/vite/src/node/watch.ts @@ -1,4 +1,4 @@ -import path from 'node:path' +import { escapePath } from 'fast-glob' import type { WatchOptions } from 'dep-types/chokidar' import type { ResolvedConfig } from '.' @@ -13,7 +13,7 @@ export function resolveChokidarOptions( '**/.git/**', '**/node_modules/**', '**/test-results/**', // Playwright - path.relative(config.root, config.cacheDir + '/**'), + escapePath(config.cacheDir + '/**'), ...(Array.isArray(ignored) ? ignored : [ignored]) ], ignoreInitial: true, From dc2ddb947ea236e8183847f896d30f0b8f0a5603 Mon Sep 17 00:00:00 2001 From: sapphi-red Date: Sat, 3 Dec 2022 19:45:02 +0900 Subject: [PATCH 3/4] fix: don't escapePath glob part --- packages/vite/src/node/watch.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/watch.ts b/packages/vite/src/node/watch.ts index acaca15e3266d6..5b3332da2d3d1f 100644 --- a/packages/vite/src/node/watch.ts +++ b/packages/vite/src/node/watch.ts @@ -13,7 +13,7 @@ export function resolveChokidarOptions( '**/.git/**', '**/node_modules/**', '**/test-results/**', // Playwright - escapePath(config.cacheDir + '/**'), + escapePath(config.cacheDir) + '/**', ...(Array.isArray(ignored) ? ignored : [ignored]) ], ignoreInitial: true, From 7885dab5b6c6fa0a6b381aac813c716567a187c9 Mon Sep 17 00:00:00 2001 From: sapphi-red Date: Sat, 3 Dec 2022 19:46:11 +0900 Subject: [PATCH 4/4] fix: normalize config.cacheDir --- packages/vite/src/node/config.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 806f0f8275de4f..223e21d201e7d8 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -530,11 +530,13 @@ export async function resolveConfig( // resolve cache directory const pkgPath = lookupFile(resolvedRoot, [`package.json`], { pathOnly: true }) - const cacheDir = config.cacheDir - ? path.resolve(resolvedRoot, config.cacheDir) - : pkgPath - ? path.join(path.dirname(pkgPath), `node_modules/.vite`) - : path.join(resolvedRoot, `.vite`) + const cacheDir = normalizePath( + config.cacheDir + ? path.resolve(resolvedRoot, config.cacheDir) + : pkgPath + ? path.join(path.dirname(pkgPath), `node_modules/.vite`) + : path.join(resolvedRoot, `.vite`) + ) const assetsFilter = config.assetsInclude ? createFilter(config.assetsInclude)