]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix: add the external for dts config
authordaiwei <daiwei521@126.com>
Wed, 9 Jul 2025 14:24:21 +0000 (22:24 +0800)
committerdaiwei <daiwei521@126.com>
Wed, 9 Jul 2025 14:24:21 +0000 (22:24 +0800)
package.json
rolldown.dts.config.js

index 768dde47af397abcaa86f3528fcc087976017d3d..918f75badd5f08ba4dc7325d4891be783c902d1e 100644 (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",
index 1ad55d9161b15501425e25aad3de24ec48127703..4666a77301d3846fe47af035ad7d84427de7d8a7 100644 (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