From: Evan You Date: Sun, 8 Dec 2024 07:53:13 +0000 (+0800) Subject: build: trim vapor intenral helper exports form runtime-core in non-esm-bunlder builds X-Git-Tag: v3.6.0-alpha.1~16^2~206 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d376f00091ba796bfc288bee1e265c2ae7e90beb;p=thirdparty%2Fvuejs%2Fcore.git build: trim vapor intenral helper exports form runtime-core in non-esm-bunlder builds --- diff --git a/rollup.config.js b/rollup.config.js index 5180d46373..3ae0665145 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -15,6 +15,7 @@ import alias from '@rollup/plugin-alias' import { entries } from './scripts/aliases.js' import { inlineEnums } from './scripts/inline-enums.js' import { minify as minifySwc } from '@swc/core' +import { trimVaporExportsPlugin } from './scripts/trim-vapor-exports.js' /** * @template T @@ -186,6 +187,7 @@ function createConfig(format, output, plugins = []) { // used alone. external: resolveExternal(), plugins: [ + ...trimVaporExportsPlugin(format, pkg.name), json({ namedExports: false, }), diff --git a/scripts/trim-vapor-exports.js b/scripts/trim-vapor-exports.js new file mode 100644 index 0000000000..4ccdf8ac46 --- /dev/null +++ b/scripts/trim-vapor-exports.js @@ -0,0 +1,33 @@ +// @ts-check + +/** + * runtime-core exports a number of internal helpers that are only used by + * runtime-vapor, which should be only preserved in vapor / esm-bundler builds. + * This plugin should be included as the first plugin for all other formats + * other than vapor / esm-bundler. + * + * @param {string} format + * @param {string} pkgName + * @returns {import('rollup').Plugin[]} + */ +export function trimVaporExportsPlugin(format, pkgName) { + if ( + format === 'vapor' || + format === 'esm-bundler' || + pkgName === '@vue/runtime-vapor' + ) { + return [] + } else { + return [ + { + name: 'trim-vapor-exports', + transform(code, id) { + if (id.endsWith('runtime-core/src/index.ts')) { + const index = code.lastIndexOf('// VAPOR ---') + return code.slice(0, index) + } + }, + }, + ] + } +}