fix: add the external for dts config

This commit is contained in:
daiwei 2025-07-09 22:24:21 +08:00
parent d754e71dff
commit 13ac153333
2 changed files with 17 additions and 1 deletions

View File

@ -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",

View File

@ -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