From a476692ed2d7308f2742d8ff3554cf97a392b0b7 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 14 Jun 2024 16:47:24 +0200 Subject: [PATCH] fix(compiler-sfc): fix parsing of mts, d.mts, and mtsx files --- packages/compiler-sfc/src/script/context.ts | 4 ++-- packages/compiler-sfc/src/script/resolveType.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/compiler-sfc/src/script/context.ts b/packages/compiler-sfc/src/script/context.ts index f74adee60..43209d4a0 100644 --- a/packages/compiler-sfc/src/script/context.ts +++ b/packages/compiler-sfc/src/script/context.ts @@ -175,14 +175,14 @@ export function resolveParserPlugins( ) { plugins.push('importAttributes') } - if (lang === 'jsx' || lang === 'tsx') { + if (lang === 'jsx' || lang === 'tsx' || lang === 'mtsx') { plugins.push('jsx') } else if (userPlugins) { // If don't match the case of adding jsx // should remove the jsx from user options userPlugins = userPlugins.filter(p => p !== 'jsx') } - if (lang === 'ts' || lang === 'tsx') { + if (lang === 'ts' || lang === 'mts' || lang === 'tsx' || lang === 'mtsx') { plugins.push(['typescript', { dts }], 'explicitResourceManagement') if (!userPlugins || !userPlugins.includes('decorators')) { plugins.push('decorators-legacy') diff --git a/packages/compiler-sfc/src/script/resolveType.ts b/packages/compiler-sfc/src/script/resolveType.ts index 4e6c6826d..ce0be1742 100644 --- a/packages/compiler-sfc/src/script/resolveType.ts +++ b/packages/compiler-sfc/src/script/resolveType.ts @@ -1139,12 +1139,12 @@ function parseFile( parserPlugins?: SFCScriptCompileOptions['babelParserPlugins'], ): Statement[] { const ext = extname(filename) - if (ext === '.ts' || ext === '.tsx') { + if (ext === '.ts' || ext === '.mts' || ext === '.tsx' || ext === '.mtsx') { return babelParse(content, { plugins: resolveParserPlugins( ext.slice(1), parserPlugins, - filename.endsWith('.d.ts'), + /\.d\.m?ts$/.test(filename), ), sourceType: 'module', }).program.body