From: Evan You Date: Mon, 8 May 2023 04:12:15 +0000 (+0800) Subject: fix(build): retain defineComponent() treeshakability in Rollup X-Git-Tag: v3.3.0-beta.5~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c2172f3a0ebbd7153e209dd8df6d9724bc524d9a;p=thirdparty%2Fvuejs%2Fcore.git fix(build): retain defineComponent() treeshakability in Rollup close #8236 --- diff --git a/packages/runtime-core/src/apiDefineComponent.ts b/packages/runtime-core/src/apiDefineComponent.ts index 9edb9965e2..76e9567fe2 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 }