From fc85ad28ae55ea9483c923f7d40373cbe27080fe Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 23 Sep 2021 23:20:53 -0400 Subject: [PATCH] fix(build): avoid importing @babel/parser in esm-bundler build fix #4665 --- packages/compiler-core/src/utils.ts | 40 ++++++++++++++--------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index ff903770229..493c80934ff 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -47,7 +47,8 @@ import { isObject, hyphenate, extend, - babelParserDefaultPlugins + babelParserDefaultPlugins, + NOOP } from '@vue/shared' import { PropsExpression } from './transforms/transformElement' import { parseExpression } from '@babel/parser' @@ -161,26 +162,25 @@ export const isMemberExpressionBrowser = (path: string): boolean => { return !currentOpenBracketCount && !currentOpenParensCount } -export const isMemberExpressionNode = ( - path: string, - context: TransformContext -): boolean => { - try { - let ret: Expression = parseExpression(path, { - plugins: [...context.expressionPlugins, ...babelParserDefaultPlugins] - }) - if (ret.type === 'TSAsExpression' || ret.type === 'TSTypeAssertion') { - ret = ret.expression +export const isMemberExpressionNode = __BROWSER__ + ? NOOP + : (path: string, context: TransformContext): boolean => { + try { + let ret: Expression = parseExpression(path, { + plugins: [...context.expressionPlugins, ...babelParserDefaultPlugins] + }) + if (ret.type === 'TSAsExpression' || ret.type === 'TSTypeAssertion') { + 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__ ? isMemberExpressionBrowser