mirror of https://github.com/vuejs/core.git
fix(compiler-sfc): fix parsing of mts, d.mts, and mtsx files
This commit is contained in:
parent
4ec387b100
commit
a476692ed2
|
@ -175,14 +175,14 @@ export function resolveParserPlugins(
|
||||||
) {
|
) {
|
||||||
plugins.push('importAttributes')
|
plugins.push('importAttributes')
|
||||||
}
|
}
|
||||||
if (lang === 'jsx' || lang === 'tsx') {
|
if (lang === 'jsx' || lang === 'tsx' || lang === 'mtsx') {
|
||||||
plugins.push('jsx')
|
plugins.push('jsx')
|
||||||
} else if (userPlugins) {
|
} else if (userPlugins) {
|
||||||
// If don't match the case of adding jsx
|
// If don't match the case of adding jsx
|
||||||
// should remove the jsx from user options
|
// should remove the jsx from user options
|
||||||
userPlugins = userPlugins.filter(p => p !== 'jsx')
|
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')
|
plugins.push(['typescript', { dts }], 'explicitResourceManagement')
|
||||||
if (!userPlugins || !userPlugins.includes('decorators')) {
|
if (!userPlugins || !userPlugins.includes('decorators')) {
|
||||||
plugins.push('decorators-legacy')
|
plugins.push('decorators-legacy')
|
||||||
|
|
|
@ -1139,12 +1139,12 @@ function parseFile(
|
||||||
parserPlugins?: SFCScriptCompileOptions['babelParserPlugins'],
|
parserPlugins?: SFCScriptCompileOptions['babelParserPlugins'],
|
||||||
): Statement[] {
|
): Statement[] {
|
||||||
const ext = extname(filename)
|
const ext = extname(filename)
|
||||||
if (ext === '.ts' || ext === '.tsx') {
|
if (ext === '.ts' || ext === '.mts' || ext === '.tsx' || ext === '.mtsx') {
|
||||||
return babelParse(content, {
|
return babelParse(content, {
|
||||||
plugins: resolveParserPlugins(
|
plugins: resolveParserPlugins(
|
||||||
ext.slice(1),
|
ext.slice(1),
|
||||||
parserPlugins,
|
parserPlugins,
|
||||||
filename.endsWith('.d.ts'),
|
/\.d\.m?ts$/.test(filename),
|
||||||
),
|
),
|
||||||
sourceType: 'module',
|
sourceType: 'module',
|
||||||
}).program.body
|
}).program.body
|
||||||
|
|
Loading…
Reference in New Issue