"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",
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(
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 => {
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