Skip to content

Reduce number of fs.stat call for files under node modules #52695

Closed
@mjbvz

Description

@mjbvz

Bug Report

🔎 Search Terms

  • fs.stat
  • statSync
  • performance

Problem

While working on web project wide IntelliSense, I noticed that TS makes a number of fs.statSync calls for files stored under the global typings cache. At least some of these calls seem to be unnecessary, such as here where we check for files called mkdirp.ts, mkdirp.tsx, mkdirp.d.ts directly under node_modules:

/Users/matb/Library/Caches/typescript/4.9/node_modules/mkdirp
/Users/matb/Library/Caches/typescript/4.9/node_modules
/Users/matb/Library/Caches/typescript/4.9/node_modules/mkdirp.ts
/Users/matb/Library/Caches/typescript/4.9/node_modules/mkdirp.tsx
/Users/matb/Library/Caches/typescript/4.9/node_modules/mkdirp.d.ts
/Users/matb/Library/Caches/typescript/4.9/node_modules/mkdirp

I don't think these specific files would ever exist, would they?

These calls are relatively fast on desktop but do have more of an overhead on web. Even on desktop, I see around 250ms total spent on all the stat calls when starting TS Server in a simple project

Can we avoid making these calls?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions