Skip to content

Commit e836166

Browse files
committed
fix: clear module resolution cache when project version changes
1 parent 4a9d25d commit e836166

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

packages/typescript/lib/node/decorateLanguageServiceHost.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ export function decorateLanguageServiceHost(
5757
languageServiceHost.getCompilationSettings(),
5858
);
5959

60+
let moduleResolutionProjectVersion: string | undefined;
61+
const tryClearModuleResolutionCache = () => {
62+
const projectVersion = languageServiceHost.getProjectVersion?.();
63+
if (projectVersion === undefined || projectVersion !== moduleResolutionProjectVersion) {
64+
moduleResolutionCache.clear();
65+
moduleResolutionProjectVersion = projectVersion;
66+
}
67+
};
68+
6069
if (resolveModuleNameLiterals) {
6170
languageServiceHost.resolveModuleNameLiterals = (
6271
moduleLiterals,
@@ -75,6 +84,7 @@ export function decorateLanguageServiceHost(
7584
options,
7685
);
7786
try {
87+
tryClearModuleResolutionCache();
7888
if (moduleLiterals.every(name => !pluginExtensions.some(ext => name.text.endsWith(ext)))) {
7989
return resolveModuleNameLiterals(
8090
moduleLiterals,
@@ -111,6 +121,7 @@ export function decorateLanguageServiceHost(
111121
options,
112122
containingSourceFile,
113123
) => {
124+
tryClearModuleResolutionCache();
114125
if (moduleNames.every(name => !pluginExtensions.some(ext => name.endsWith(ext)))) {
115126
return resolveModuleNames(
116127
moduleNames,

0 commit comments

Comments
 (0)