diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index a266c8cd661d29..68f26d95cf18cc 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -501,7 +501,14 @@ export function generateCodeFrame( export function isFileReadable(filename: string): boolean { try { + // The "throwIfNoEntry" is a performance optimization for cases where the file does not exist + if (!fs.statSync(filename, { throwIfNoEntry: false })) { + return false + } + + // Check if current process has read permission to the file fs.accessSync(filename, fs.constants.R_OK) + return true } catch { return false