From: daiwei Date: Wed, 9 Jul 2025 14:24:21 +0000 (+0800) Subject: fix: add the external for dts config X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=13ac153333856154e196731b4a044b0a0cd95f8f;p=thirdparty%2Fvuejs%2Fcore.git fix: add the external for dts config --- diff --git a/package.json b/package.json index 768dde47af..918f75badd 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build": "node scripts/build.js", "build-rollup": "node scripts/build-with-rollup.js", "build-dts": "node scripts/build-types.js", - "build-dts-tsc": "tsc -p tsconfig.build.json --noCheck && rollup -c rollup.dts.config.js", + "build-dts-tsc": "tsc -p tsconfig.build.json --noCheck && rolldown -c rolldown.dts.config.js", "clean": "rimraf --glob packages/*/dist temp .eslintcache", "size": "run-s \"size-*\" && node scripts/usage-size.js", "size-global": "node scripts/build.js vue runtime-dom -f global -p --size", diff --git a/rolldown.dts.config.js b/rolldown.dts.config.js index 1ad55d9161..4666a77301 100644 --- a/rolldown.dts.config.js +++ b/rolldown.dts.config.js @@ -4,6 +4,9 @@ import { parseSync } from 'oxc-parser' import { existsSync, readFileSync, readdirSync, writeFileSync } from 'node:fs' import MagicString from 'magic-string' import { dts } from 'rolldown-plugin-dts' +import { createRequire } from 'node:module' +import { fileURLToPath } from 'node:url' +import path from 'node:path' if (!existsSync('temp/packages')) { console.warn( @@ -12,12 +15,24 @@ if (!existsSync('temp/packages')) { process.exit(1) } +const require = createRequire(import.meta.url) +const __dirname = fileURLToPath(new URL('.', import.meta.url)) +const packagesDir = path.resolve(__dirname, 'packages') + const packages = readdirSync('temp/packages') const targets = process.env.TARGETS ? process.env.TARGETS.split(',') : null const targetPackages = targets ? packages.filter(pkg => targets.includes(pkg)) : packages +function resolveExternal(packageName) { + const pkg = require(`${packagesDir}/${packageName}/package.json`) + return [ + ...Object.keys(pkg.dependencies || {}), + ...Object.keys(pkg.peerDependencies || {}), + ] +} + export default targetPackages.map( /** @returns {import('rolldown').BuildOptions} */ pkg => { @@ -27,6 +42,7 @@ export default targetPackages.map( file: `packages/${pkg}/dist/${pkg}.d.ts`, format: 'es', }, + external: resolveExternal(pkg), plugins: [dts(), patchTypes(pkg), ...(pkg === 'vue' ? [copyMts()] : [])], onwarn(warning, warn) { // during dts rolldown, everything is externalized by default