From 7994e7779249e492210e944fe4fd28789eda5492 Mon Sep 17 00:00:00 2001 From: Ivan Demchuk Date: Fri, 11 Feb 2022 20:11:10 +0200 Subject: [PATCH 1/2] perf: improve isFileReadable performance --- packages/vite/src/node/utils.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index d723b25a54122d..450a009c4d743e 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -421,12 +421,15 @@ export function writeFile( * unnecessary in the first place) */ export function isFileReadable(filename: string): boolean { + let stat = null try { - fs.accessSync(filename, fs.constants.R_OK) - return true - } catch { - return false + stat = fs.statSync(filename, { throwIfNoEntry: false }) + } catch (e) { + if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false + + throw e } + return !!stat } /** From 3231932c50d2aa75e330569dab7ac350744d46e9 Mon Sep 17 00:00:00 2001 From: Ivan Demchuk Date: Sun, 13 Feb 2022 10:46:03 +0200 Subject: [PATCH 2/2] chore: simplify isFileReadable --- packages/vite/src/node/utils.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index 450a009c4d743e..2b2ba6fb859107 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -421,15 +421,12 @@ export function writeFile( * unnecessary in the first place) */ export function isFileReadable(filename: string): boolean { - let stat = null try { - stat = fs.statSync(filename, { throwIfNoEntry: false }) - } catch (e) { - if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false - - throw e + const stat = fs.statSync(filename, { throwIfNoEntry: false }) + return !!stat + } catch { + return false } - return !!stat } /**