Skip to content

Commit da00ba6

Browse files
authored
fix: getDefaultLibFilePath should normalize __dirname (microsoft#49051)
- this currently causes a bug on Windows with mixed path separators - it returns a POSIX backslash path for __dirname, and then adds a forward slash from the directorySeparator, causing mixed separators - TS uses `/` internally and lets the host convert if needed, so I assume this should be normalized to all forward slashses instead - example of the bug from my tests: ``` Expected: "D:\\a\\rollup-plugin-typescript2\\rollup-plugin-typescript2\\node_modules\\typescript\\lib\\lib.d.ts" Received: "D:\\a\\rollup-plugin-typescript2\\rollup-plugin-typescript2\\node_modules\\typescript\\lib/lib.d.ts" ``` - every other use of __dirname in the codebase seems to be normalized except for this one - could use normalizeSlashes for this, but I figure combinePaths is more appropriate since that will handle it and combine properly as well without any `+ directorySeparator +` stuff
1 parent 1ba6096 commit da00ba6

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/services/services.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2880,7 +2880,7 @@ namespace ts {
28802880
export function getDefaultLibFilePath(options: CompilerOptions): string {
28812881
// Check __dirname is defined and that we are on a node.js system.
28822882
if (typeof __dirname !== "undefined") {
2883-
return __dirname + directorySeparator + getDefaultLibFileName(options);
2883+
return combinePaths(__dirname, getDefaultLibFileName(options));
28842884
}
28852885

28862886
throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. ");

0 commit comments

Comments
 (0)