fix(build): avoid importing @babel/parser in esm-bundler build

fix #4665
This commit is contained in:
Evan You 2021-09-23 23:20:53 -04:00
parent 87c86e4cc2
commit fc85ad28ae

View File

@ -47,7 +47,8 @@ import {
isObject, isObject,
hyphenate, hyphenate,
extend, extend,
babelParserDefaultPlugins babelParserDefaultPlugins,
NOOP
} from '@vue/shared' } from '@vue/shared'
import { PropsExpression } from './transforms/transformElement' import { PropsExpression } from './transforms/transformElement'
import { parseExpression } from '@babel/parser' import { parseExpression } from '@babel/parser'
@ -161,26 +162,25 @@ export const isMemberExpressionBrowser = (path: string): boolean => {
return !currentOpenBracketCount && !currentOpenParensCount return !currentOpenBracketCount && !currentOpenParensCount
} }
export const isMemberExpressionNode = ( export const isMemberExpressionNode = __BROWSER__
path: string, ? NOOP
context: TransformContext : (path: string, context: TransformContext): boolean => {
): boolean => { try {
try { let ret: Expression = parseExpression(path, {
let ret: Expression = parseExpression(path, { plugins: [...context.expressionPlugins, ...babelParserDefaultPlugins]
plugins: [...context.expressionPlugins, ...babelParserDefaultPlugins] })
}) if (ret.type === 'TSAsExpression' || ret.type === 'TSTypeAssertion') {
if (ret.type === 'TSAsExpression' || ret.type === 'TSTypeAssertion') { ret = ret.expression
ret = ret.expression }
return (
ret.type === 'MemberExpression' ||
ret.type === 'OptionalMemberExpression' ||
ret.type === 'Identifier'
)
} catch (e) {
return false
}
} }
return (
ret.type === 'MemberExpression' ||
ret.type === 'OptionalMemberExpression' ||
ret.type === 'Identifier'
)
} catch (e) {
return false
}
}
export const isMemberExpression = __BROWSER__ export const isMemberExpression = __BROWSER__
? isMemberExpressionBrowser ? isMemberExpressionBrowser