Skip to content

Commit 76241b0

Browse files
fix(language-core): try handle node next module resolution (#3159)
Co-authored-by: Johnson Chu <[email protected]>
1 parent c220bbc commit 76241b0

File tree

1 file changed

+6
-25
lines changed

1 file changed

+6
-25
lines changed

packages/vue-language-core/src/languageModule.ts

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ export function createLanguage(
1515
) {
1616

1717
const vueCompilerOptions = resolveVueCompilerOptions(_vueCompilerOptions);
18-
19-
patchResolveModuleNames(ts, vueCompilerOptions);
20-
2118
const vueLanguagePlugin = getDefaultVueLanguagePlugins(
2219
ts,
2320
compilerOptions,
@@ -50,6 +47,12 @@ export function createLanguage(
5047
const sharedTypesFileName = path.join(host.rootPath, sharedTypes.baseName);
5148
return {
5249
...host,
50+
resolveModuleName(moduleName, impliedNodeFormat) {
51+
if (impliedNodeFormat === ts.ModuleKind.ESNext && vueCompilerOptions.extensions.some(ext => moduleName.endsWith(ext))) {
52+
return `${moduleName}.js`;
53+
}
54+
return host.resolveModuleName?.(moduleName, impliedNodeFormat) ?? moduleName;
55+
},
5356
getScriptFileNames() {
5457
return [
5558
sharedTypesFileName,
@@ -80,25 +83,3 @@ export function createLanguages(
8083
...vueCompilerOptions.experimentalAdditionalLanguageModules?.map(module => require(module)) ?? [],
8184
];
8285
}
83-
84-
function patchResolveModuleNames(
85-
ts: typeof import('typescript/lib/tsserverlibrary'),
86-
vueCompilerOptions: VueCompilerOptions,
87-
) {
88-
try {
89-
// from https://github.com/vuejs/language-tools/pull/1543
90-
if (!((ts as any).__vuePatchResolveModuleNames)) {
91-
(ts as any).__vuePatchResolveModuleNames = true;
92-
const resolveModuleNames = ts.resolveModuleName;
93-
ts.resolveModuleName = (...args) => {
94-
if (args[6] === ts.ModuleKind.ESNext && vueCompilerOptions.extensions.some(ext => args[0].endsWith(ext))) {
95-
args[6] = ts.ModuleKind.CommonJS;
96-
}
97-
return resolveModuleNames(...args);
98-
};
99-
}
100-
}
101-
catch (e) {
102-
// console.warn('[volar] patchResolveModuleNames failed', e);
103-
}
104-
}

0 commit comments

Comments
 (0)