build: avoid runtime wildcard import in global build
This commit is contained in:
parent
5455e8e69a
commit
32d6a46474
@ -7,6 +7,7 @@ module.exports = {
|
||||
__BROWSER__: false,
|
||||
__BUNDLER__: true,
|
||||
__RUNTIME_COMPILE__: true,
|
||||
__GLOBAL__: false,
|
||||
__NODE_JS__: true,
|
||||
__FEATURE_OPTIONS__: true,
|
||||
__FEATURE_SUSPENSE__: true
|
||||
|
1
packages/global.d.ts
vendored
1
packages/global.d.ts
vendored
@ -4,6 +4,7 @@ declare var __TEST__: boolean
|
||||
declare var __BROWSER__: boolean
|
||||
declare var __BUNDLER__: boolean
|
||||
declare var __RUNTIME_COMPILE__: boolean
|
||||
declare var __GLOBAL__: boolean
|
||||
declare var __NODE_JS__: boolean
|
||||
declare var __COMMIT__: string
|
||||
declare var __VERSION__: string
|
||||
|
@ -58,7 +58,13 @@ function compileToFunction(
|
||||
...options
|
||||
})
|
||||
|
||||
const render = new Function('Vue', code)(runtimeDom) as RenderFunction
|
||||
// The wildcard import results in a huge object with every export
|
||||
// with keys that cannot be mangled, and can be quite heavy size-wise.
|
||||
// In the global build we know `Vue` is available globally so we can avoid
|
||||
// the wildcard object.
|
||||
const render = (__GLOBAL__
|
||||
? new Function(code)()
|
||||
: new Function('Vue', code)(runtimeDom)) as RenderFunction
|
||||
return (compileCache[key] = render)
|
||||
}
|
||||
|
||||
|
@ -136,6 +136,7 @@ function createConfig(format, output, plugins = []) {
|
||||
(isGlobalBuild || isRawESMBuild || isBundlerESMBuild) &&
|
||||
!packageOptions.enableNonBrowserBranches,
|
||||
isRuntimeCompileBuild,
|
||||
isGlobalBuild,
|
||||
isNodeBuild
|
||||
),
|
||||
...plugins
|
||||
@ -154,6 +155,7 @@ function createReplacePlugin(
|
||||
isBundlerESMBuild,
|
||||
isBrowserBuild,
|
||||
isRuntimeCompileBuild,
|
||||
isGlobalBuild,
|
||||
isNodeBuild
|
||||
) {
|
||||
const replacements = {
|
||||
@ -172,6 +174,7 @@ function createReplacePlugin(
|
||||
__BUNDLER__: isBundlerESMBuild,
|
||||
// support compile in browser?
|
||||
__RUNTIME_COMPILE__: isRuntimeCompileBuild,
|
||||
__GLOBAL__: isGlobalBuild,
|
||||
// is targeting Node (SSR)?
|
||||
__NODE_JS__: isNodeBuild,
|
||||
// support options?
|
||||
|
Loading…
Reference in New Issue
Block a user