From: Evan You Date: Fri, 14 Jun 2024 14:47:24 +0000 (+0200) Subject: fix(compiler-sfc): fix parsing of mts, d.mts, and mtsx files X-Git-Tag: v3.4.29~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a476692ed2d7308f2742d8ff3554cf97a392b0b7;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-sfc): fix parsing of mts, d.mts, and mtsx files --- diff --git a/packages/compiler-sfc/src/script/context.ts b/packages/compiler-sfc/src/script/context.ts index f74adee603..43209d4a0d 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 4e6c6826d9..ce0be17425 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