Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix(case): apply using pnpm with store outside#63099

Open
baymer wants to merge 1 commit intomicrosoft:mainfrom
baymer:fix-casesensitive-calculation
Open

fix(case): apply using pnpm with store outside#63099
baymer wants to merge 1 commit intomicrosoft:mainfrom
baymer:fix-casesensitive-calculation

Conversation

@baymer
Copy link

@baymerbaymer commentedFeb 4, 2026
edited
Loading

on mac filesystem is CaseInsensitive but repo mount is CaseSensitive and when pnpm has virtualStore outside, the typescript think that the system is CaseInsensitive, but it is CaseSensitive

to fix that we use pnpm-patch

diff --git a/lib/typescript.js b/lib/typescript.jsindex 2643aa12aa6497ca0b90ecd99b202f37ea0e6330..34757f4fb1a2958bec5142c6e365c4214a2f36fb 100644--- a/lib/typescript.js+++ b/lib/typescript.js@@ -8277,11 +8277,11 @@ var sys = (() => {     const isLinuxOrMacOs = process.platform === "linux" || isMacOs;     const statSyncOptions = { throwIfNoEntry: false };     const platform = _os.platform();+    const getCurrentDirectory = memoize(() => process.cwd());     const useCaseSensitiveFileNames2 = isFileSystemCaseSensitive();     const fsRealpath = !!_fs.realpathSync.native ? process.platform === "win32" ? fsRealPathHandlingLongPath : _fs.realpathSync.native : _fs.realpathSync;     const executingFilePath = __filename.endsWith("sys.js") ? _path.join(_path.dirname(__dirname), "__fake__.js") : __filename;     const fsSupportsRecursiveFsWatch = process.platform === "win32" || isMacOs;-    const getCurrentDirectory = memoize(() => process.cwd());     const { watchFile: watchFile2, watchDirectory } = createSystemWatchFunctions({       pollingWatchFileWorker: fsWatchFileWorker,       getModifiedTime: getModifiedTime3,@@ -8484,7 +8484,7 @@ var sys = (() => {       if (platform === "win32" || platform === "win64") {         return false;       }-      return !fileExists(swapCase(__filename));+      return !fileExists(swapCase(getCurrentDirectory()));     }     function swapCase(s) {       return s.replace(/\w/g, (ch) => {

may be the time to fix that in the upstream)

Fixes#63100

on mac filesystem is CaseInsensitivebut repo mount is CaseSensitiveand when pnpm has virtualStore outside, the typescript think that the system is CaseInsensitive, but it is CaseSensitiveto fix that we use pnpm-patch```diff --git a/lib/typescript.js b/lib/typescript.jsindex2643aa1..34757f4fb1a2958bec5142c6e365c4214a2f36fb 100644--- a/lib/typescript.js+++ b/lib/typescript.js@@ -8277,11 +8277,11 @@ var sys = (() => {     const isLinuxOrMacOs = process.platform === "linux" || isMacOs;     const statSyncOptions = { throwIfNoEntry: false };     const platform = _os.platform();+    const getCurrentDirectory = memoize(() => process.cwd());     const useCaseSensitiveFileNames2 = isFileSystemCaseSensitive();     const fsRealpath = !!_fs.realpathSync.native ? process.platform === "win32" ? fsRealPathHandlingLongPath : _fs.realpathSync.native : _fs.realpathSync;     const executingFilePath = __filename.endsWith("sys.js") ? _path.join(_path.dirname(__dirname), "__fake__.js") : __filename;     const fsSupportsRecursiveFsWatch = process.platform === "win32" || isMacOs;-    const getCurrentDirectory = memoize(() => process.cwd());     const { watchFile: watchFile2, watchDirectory } = createSystemWatchFunctions({       pollingWatchFileWorker: fsWatchFileWorker,       getModifiedTime: getModifiedTime3,@@ -8484,7 +8484,7 @@ var sys = (() => {       if (platform === "win32" || platform === "win64") {         return false;       }-      return !fileExists(swapCase(__filename));+      return !fileExists(swapCase(getCurrentDirectory()));     }     function swapCase(s) {       return s.replace(/\w/g, (ch) => {```may be the time to fix that in the upstream)
@typescript-bot
Copy link
Collaborator

This PR doesn't have any linked issues. Please open an issue that references this PR. From there we can discuss and prioritise.

@typescript-bottypescript-bot added the For Uncommitted BugPR for untriaged, rejected, closed or missing bug labelFeb 4, 2026
@baymer
Copy link
Author

This PR doesn't have any linked issues. Please open an issue that references this PR. From there we can discuss and prioritise.

#63100

@jakebailey
Copy link
Member

I don't think this is the right kind of fix; it just moves the case check to an unspecified "current directory" which we largely do not have any control over and should very much always ignore

Copy link
Member

@sheetalkamatsheetalkamat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I dont think this is right approach, You should look into where incorrect file casing is used as we did#56476 to somehow avoid this issue.

We cannot do "volume" wise casing as we arent currently equipped for that but we try to use "filenames" instead of "paths" which are lowercase file name on case-insensitive system.

@github-project-automationgithub-project-automationbot moved this fromNot started toWaiting on author inPR BacklogFeb 4, 2026
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@sheetalkamatsheetalkamatsheetalkamat requested changes

Requested changes must be addressed to merge this pull request.

Assignees

No one assigned

Labels

For Uncommitted BugPR for untriaged, rejected, closed or missing bug

Projects

Status: Waiting on author

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

TS wrong calculate case sensitive repo as case insensitive filesystem

4 participants

@baymer@typescript-bot@jakebailey@sheetalkamat

Comments


[8]ページ先頭

©2009-2026 Movatter.jp