From: daiwei Date: Wed, 9 Jul 2025 09:08:11 +0000 (+0800) Subject: build: use rolldown-plugin-dts X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e0f29fa2ea387b47348c641fe007f0410bad6c8c;p=thirdparty%2Fvuejs%2Fcore.git build: use rolldown-plugin-dts --- diff --git a/package.json b/package.json index 6f2218efbd..768dde47af 100644 --- a/package.json +++ b/package.json @@ -104,9 +104,9 @@ "rimraf": "^6.0.1", "rolldown": "1.0.0-beta.24", "rollup": "^4.25.0", - "rollup-plugin-dts": "^6.1.1", "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-polyfill-node": "^0.13.0", + "rolldown-plugin-dts": "0.13.13", "semver": "^7.6.3", "serve": "^14.2.4", "serve-handler": "^6.1.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4bcb657a78..030dbd8042 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,12 +149,12 @@ importers: rolldown: specifier: 1.0.0-beta.24 version: 1.0.0-beta.24 + rolldown-plugin-dts: + specifier: 0.13.13 + version: 0.13.13(rolldown@1.0.0-beta.24)(typescript@5.6.2) rollup: specifier: ^4.25.0 version: 4.25.0 - rollup-plugin-dts: - specifier: ^6.1.1 - version: 6.1.1(rollup@4.25.0)(typescript@5.6.2) rollup-plugin-esbuild: specifier: ^6.1.1 version: 6.1.1(esbuild@0.24.0)(rollup@4.25.0) @@ -464,14 +464,26 @@ packages: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.0': + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.2': resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} @@ -481,10 +493,19 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/types@7.25.2': resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.0': + resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -861,6 +882,9 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -879,6 +903,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@jspm/core@2.0.1': resolution: {integrity: sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw==} @@ -1740,6 +1767,10 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-kit@2.1.1: + resolution: {integrity: sha512-mfh6a7gKXE8pDlxTvqIc/syH/P3RkzbOF6LeHdcKztLEzYe6IMsRCL7N8vI7hqTGWNxpkCuuRTpT21xNWqhRtQ==} + engines: {node: '>=20.18.0'} + ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} @@ -1776,6 +1807,9 @@ packages: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} + birpc@2.4.0: + resolution: {integrity: sha512-5IdNxTyhXHv2UlgnPHQ0h+5ypVmkrYHzL8QT+DwFZ//2N/oNV8Ch+BCRmTJ3x6/z9Axo/cXYBc9eprsUVK/Jsg==} + boxen@7.0.0: resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} engines: {node: '>=14.16'} @@ -2052,6 +2086,15 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} @@ -2101,6 +2144,15 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} + dts-resolver@2.1.1: + resolution: {integrity: sha512-3BiGFhB6mj5Kv+W2vdJseQUYW+SKVzAFJL6YNP6ursbrwy1fXHRotfHi3xLNxe4wZl/K8qbAFeCDjZLjzqxxRw==} + engines: {node: '>=20.18.0'} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2362,6 +2414,9 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.7.6: resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} @@ -2653,6 +2708,11 @@ packages: canvas: optional: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -3001,6 +3061,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pathval@2.0.0: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} @@ -3233,17 +3296,26 @@ packages: engines: {node: 20 || >=22} hasBin: true + rolldown-plugin-dts@0.13.13: + resolution: {integrity: sha512-Nchx9nQoa4IpfQ/BJzodKMvtJ3H3dT322siAJSp3uvQJ+Pi1qgEjOp7hSQwGSQRhaC5gC+9hparbWEH5oiAL9Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + '@typescript/native-preview': '>=7.0.0-dev.20250601.1' + rolldown: ^1.0.0-beta.9 + typescript: ^5.0.0 + vue-tsc: ~2.2.0 + peerDependenciesMeta: + '@typescript/native-preview': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + rolldown@1.0.0-beta.24: resolution: {integrity: sha512-eDyipoOnoHQ5p6INkJ8g31eKGlqPSCAN9PapyOTw5HET4FYIWALZnSgpMZ67mdn+xT3jAsqGidNnBcIM6EAUhA==} hasBin: true - rollup-plugin-dts@6.1.1: - resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} - engines: {node: '>=16'} - peerDependencies: - rollup: ^3.29.4 || ^4 - typescript: ^4.5 || ^5.0 - rollup-plugin-esbuild@6.1.1: resolution: {integrity: sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==} engines: {node: '>=14.18.0'} @@ -3788,10 +3860,22 @@ snapshots: '@babel/highlight': 7.24.2 picocolors: 1.1.1 + '@babel/generator@7.28.0': + dependencies: + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/highlight@7.24.2': dependencies: '@babel/helper-validator-identifier': 7.24.7 @@ -3803,12 +3887,21 @@ snapshots: dependencies: '@babel/types': 7.25.2 + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.0 + '@babel/types@7.25.2': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@babel/types@7.28.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@bcoe/v8-coverage@0.2.3': {} '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)': @@ -4043,6 +4136,11 @@ snapshots: '@istanbuljs/schema@0.1.3': {} + '@jridgewell/gen-mapping@0.3.12': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -4060,6 +4158,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.29': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jspm/core@2.0.1': {} '@napi-rs/wasm-runtime@0.2.11': @@ -4762,6 +4865,11 @@ snapshots: assertion-error@2.0.1: {} + ast-kit@2.1.1: + dependencies: + '@babel/parser': 7.28.0 + pathe: 2.0.3 + ast-types@0.13.4: dependencies: tslib: 2.8.1 @@ -4798,6 +4906,8 @@ snapshots: basic-ftp@5.0.5: {} + birpc@2.4.0: {} + boxen@7.0.0: dependencies: ansi-align: 3.0.1 @@ -5088,6 +5198,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.4.1: + dependencies: + ms: 2.1.3 + decimal.js@10.4.3: {} deep-eql@5.0.2: {} @@ -5127,6 +5241,8 @@ snapshots: dependencies: is-obj: 2.0.0 + dts-resolver@2.1.1: {} + eastasianwidth@0.2.0: {} emoji-regex@10.3.0: {} @@ -5471,6 +5587,10 @@ snapshots: get-stream@8.0.1: {} + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + get-tsconfig@4.7.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -5771,6 +5891,8 @@ snapshots: - supports-color - utf-8-validate + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -6140,6 +6262,8 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.3: {} + pathval@2.0.0: {} pend@1.2.0: {} @@ -6417,6 +6541,23 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.0 + rolldown-plugin-dts@0.13.13(rolldown@1.0.0-beta.24)(typescript@5.6.2): + dependencies: + '@babel/generator': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + ast-kit: 2.1.1 + birpc: 2.4.0 + debug: 4.4.1 + dts-resolver: 2.1.1 + get-tsconfig: 4.10.1 + rolldown: 1.0.0-beta.24 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - oxc-resolver + - supports-color + rolldown@1.0.0-beta.24: dependencies: '@oxc-project/runtime': 0.75.1 @@ -6437,14 +6578,6 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.24 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.24 - rollup-plugin-dts@6.1.1(rollup@4.25.0)(typescript@5.6.2): - dependencies: - magic-string: 0.30.12 - rollup: 4.25.0 - typescript: 5.6.2 - optionalDependencies: - '@babel/code-frame': 7.24.2 - rollup-plugin-esbuild@6.1.1(esbuild@0.24.0)(rollup@4.25.0): dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.25.0) diff --git a/rollup.dts.config.js b/rolldown.dts.config.js similarity index 95% rename from rollup.dts.config.js rename to rolldown.dts.config.js index a45564d51e..1ad55d9161 100644 --- a/rollup.dts.config.js +++ b/rolldown.dts.config.js @@ -3,7 +3,7 @@ import assert from 'node:assert/strict' import { parseSync } from 'oxc-parser' import { existsSync, readFileSync, readdirSync, writeFileSync } from 'node:fs' import MagicString from 'magic-string' -import dts from 'rollup-plugin-dts' +import { dts } from 'rolldown-plugin-dts' if (!existsSync('temp/packages')) { console.warn( @@ -19,7 +19,7 @@ const targetPackages = targets : packages export default targetPackages.map( - /** @returns {import('rollup').RollupOptions} */ + /** @returns {import('rolldown').BuildOptions} */ pkg => { return { input: `./temp/packages/${pkg}/src/index.d.ts`, @@ -29,7 +29,7 @@ export default targetPackages.map( }, plugins: [dts(), patchTypes(pkg), ...(pkg === 'vue' ? [copyMts()] : [])], onwarn(warning, warn) { - // during dts rollup, everything is externalized by default + // during dts rolldown, everything is externalized by default if ( warning.code === 'UNRESOLVED_IMPORT' && !warning.exporter?.startsWith('.') @@ -43,7 +43,7 @@ export default targetPackages.map( ) /** - * Patch the dts generated by rollup-plugin-dts + * Patch the dts generated by rolldown-plugin-dts * 1. Convert all types to inline exports * and remove them from the big export {} declaration * otherwise it gets weird in vitepress `defineComponent` call with @@ -51,7 +51,7 @@ export default targetPackages.map( * 2. Append custom augmentations (jsx, macros) * * @param {string} pkg - * @returns {import('rollup').Plugin} + * @returns {import('rolldown').Plugin} */ function patchTypes(pkg) { return { @@ -200,7 +200,7 @@ function patchTypes(pkg) { * two separate declaration files, so we need to copy vue.d.ts to vue.d.mts * upon build. * - * @returns {import('rollup').Plugin} + * @returns {import('rolldown').Plugin} */ function copyMts() { return { diff --git a/scripts/build-types.js b/scripts/build-types.js index 5019460216..b7dd75dd34 100644 --- a/scripts/build-types.js +++ b/scripts/build-types.js @@ -2,7 +2,7 @@ import fs from 'node:fs' import path from 'node:path' import glob from 'fast-glob' import { isolatedDeclaration } from 'oxc-transform' -import { rollup } from 'rollup' +import { rolldown } from 'rolldown' import picocolors from 'picocolors' if (fs.existsSync('temp/packages')) { @@ -43,16 +43,16 @@ if (errs) { write(path.join('temp', 'oxc-iso-decl-errors.txt'), errs) } -console.log('bundling dts with rollup-plugin-dts...') +console.log('bundling dts with rolldown-plugin-dts...') -// bundle with rollup-plugin-dts -const rollupConfigs = (await import('../rollup.dts.config.js')).default +// bundle with rolldown-plugin-dts +const rolldownConfigs = (await import('../rolldown.dts.config.js')).default start = performance.now() await Promise.all( - rollupConfigs.map(c => - rollup(c).then(bundle => { + rolldownConfigs.map(c => + rolldown(c).then(bundle => { return bundle.write(c.output).then(() => { console.log(picocolors.gray('built: ') + picocolors.blue(c.output.file)) }) diff --git a/tsconfig.json b/tsconfig.json index 9896083cf1..b443b7fbcb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -36,7 +36,8 @@ "packages/vue/jsx-runtime", "packages/runtime-dom/types/jsx.d.ts", "scripts/*", - "rollup.*.js" + "rollup.*.js", + "rolldown.dts.config.js" ], "exclude": ["packages-private/sfc-playground/src/vue-dev-proxy*"] }