From c2172f3a0ebbd7153e209dd8df6d9724bc524d9a Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 8 May 2023 12:12:15 +0800 Subject: [PATCH] fix(build): retain defineComponent() treeshakability in Rollup close #8236 --- packages/runtime-core/src/apiDefineComponent.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/runtime-core/src/apiDefineComponent.ts b/packages/runtime-core/src/apiDefineComponent.ts index 9edb9965e..76e9567fe 100644 --- a/packages/runtime-core/src/apiDefineComponent.ts +++ b/packages/runtime-core/src/apiDefineComponent.ts @@ -279,6 +279,9 @@ export function defineComponent( extraOptions?: ComponentOptions ) { return isFunction(options) - ? extend({ name: options.name }, extraOptions, { setup: options }) + ? // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /*#__PURE__*/ (() => + extend({ name: options.name }, extraOptions, { setup: options }))() : options }