From da197ec7c8e4b1706241bc4785700ef7027e2448 Mon Sep 17 00:00:00 2001 From: pooya parsa Date: Thu, 13 Oct 2022 19:52:17 +0200 Subject: [PATCH] feat!: update rollup to v3 (#129) --- package.json | 10 +-- pnpm-lock.yaml | 139 +++++++++++++++++++----------------------- src/builder/rollup.ts | 21 +++++-- 3 files changed, 84 insertions(+), 86 deletions(-) diff --git a/package.json b/package.json index 3dd3535..b2c12b3 100644 --- a/package.json +++ b/package.json @@ -28,11 +28,11 @@ "unbuild": "jiti ./src/cli" }, "dependencies": { - "@rollup/plugin-alias": "^3.1.9", + "@rollup/plugin-alias": "^4.0.0", "@rollup/plugin-commonjs": "^23.0.0", - "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-json": "^5.0.0", "@rollup/plugin-node-resolve": "^15.0.0", - "@rollup/plugin-replace": "^4.0.0", + "@rollup/plugin-replace": "^5.0.0", "@rollup/pluginutils": "^5.0.1", "chalk": "^5.1.2", "consola": "^2.15.3", @@ -50,7 +50,7 @@ "pkg-types": "^0.3.5", "pretty-bytes": "^6.0.0", "rimraf": "^3.0.2", - "rollup": "^2.79.1", + "rollup": "^3.1.0", "rollup-plugin-dts": "^4.2.3", "rollup-plugin-esbuild": "^4.10.1", "scule": "^0.3.2", @@ -61,7 +61,7 @@ "@nuxtjs/eslint-config-typescript": "^11.0.0", "@types/mkdirp": "^1.0.2", "@types/mri": "^1.1.1", - "@types/node": "^18.7.14", + "@types/node": "^18.8.5", "@types/rimraf": "^3.0.2", "@vitest/coverage-c8": "^0.24.1", "changelogen": "^0.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1f255c..77fe448 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,15 +2,15 @@ lockfileVersion: 5.4 specifiers: '@nuxtjs/eslint-config-typescript': ^11.0.0 - '@rollup/plugin-alias': ^3.1.9 + '@rollup/plugin-alias': ^4.0.0 '@rollup/plugin-commonjs': ^23.0.0 - '@rollup/plugin-json': ^4.1.0 + '@rollup/plugin-json': ^5.0.0 '@rollup/plugin-node-resolve': ^15.0.0 - '@rollup/plugin-replace': ^4.0.0 + '@rollup/plugin-replace': ^5.0.0 '@rollup/pluginutils': ^5.0.1 '@types/mkdirp': ^1.0.2 '@types/mri': ^1.1.1 - '@types/node': ^18.7.14 + '@types/node': ^18.8.5 '@types/rimraf': ^3.0.2 '@vitest/coverage-c8': ^0.24.1 chalk: ^5.1.2 @@ -31,7 +31,7 @@ specifiers: pkg-types: ^0.3.5 pretty-bytes: ^6.0.0 rimraf: ^3.0.2 - rollup: ^2.79.1 + rollup: ^3.1.0 rollup-plugin-dts: ^4.2.3 rollup-plugin-esbuild: ^4.10.1 scule: ^0.3.2 @@ -40,12 +40,12 @@ specifiers: vitest: ^0.24.1 dependencies: - '@rollup/plugin-alias': 3.1.9_rollup@2.79.1 - '@rollup/plugin-commonjs': 23.0.0_rollup@2.79.1 - '@rollup/plugin-json': 4.1.0_rollup@2.79.1 - '@rollup/plugin-node-resolve': 15.0.0_rollup@2.79.1 - '@rollup/plugin-replace': 4.0.0_rollup@2.79.1 - '@rollup/pluginutils': 5.0.1_rollup@2.79.1 + '@rollup/plugin-alias': 4.0.0_rollup@3.1.0 + '@rollup/plugin-commonjs': 23.0.0_rollup@3.1.0 + '@rollup/plugin-json': 5.0.0_rollup@3.1.0 + '@rollup/plugin-node-resolve': 15.0.0_rollup@3.1.0 + '@rollup/plugin-replace': 5.0.0_rollup@3.1.0 + '@rollup/pluginutils': 5.0.1_rollup@3.1.0 chalk: 5.1.2 consola: 2.15.3 defu: 6.1.0 @@ -62,9 +62,9 @@ dependencies: pkg-types: 0.3.5 pretty-bytes: 6.0.0 rimraf: 3.0.2 - rollup: 2.79.1 - rollup-plugin-dts: 4.2.3_gypgyaqhine6mwjfvh7icfhviq - rollup-plugin-esbuild: 4.10.1_fwemgdvumxap6dfcd4fpjmg6cy + rollup: 3.1.0 + rollup-plugin-dts: 4.2.3_iveik5itt6bizfkphibyk5djdy + rollup-plugin-esbuild: 4.10.1_fclsl4c6gsr6cofi4hyljdq5fe scule: 0.3.2 typescript: 4.8.4 untyped: 0.5.0 @@ -73,7 +73,7 @@ devDependencies: '@nuxtjs/eslint-config-typescript': 11.0.0_z4bbprzjrhnsfa24uvmcbu7f5q '@types/mkdirp': 1.0.2 '@types/mri': 1.1.1 - '@types/node': 18.7.16 + '@types/node': 18.8.5 '@types/rimraf': 3.0.2 '@vitest/coverage-c8': 0.24.1 changelogen: 0.3.2 @@ -458,17 +458,20 @@ packages: tslib: 2.4.0 dev: true - /@rollup/plugin-alias/3.1.9_rollup@2.79.1: - resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} - engines: {node: '>=8.0.0'} + /@rollup/plugin-alias/4.0.0_rollup@3.1.0: + resolution: {integrity: sha512-fGRWzM2F6wXnzAqn4Db8SdB/2Ree0u2XOQaaTy9mhqA35NmUzJXevMBUcpZywPF2MIUUAw+SKfWogKxFSPh+Qw==} + engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true dependencies: - rollup: 2.79.1 - slash: 3.0.0 + rollup: 3.1.0 + slash: 4.0.0 dev: false - /@rollup/plugin-commonjs/23.0.0_rollup@2.79.1: + /@rollup/plugin-commonjs/23.0.0_rollup@3.1.0: resolution: {integrity: sha512-JbrTRyDNtLQj/rhl7RFUuYXwQ2fac+33oLDAu2k++WD95zweyo28UAomLVA0JMGx4vmCa7Nw4T6k/1F6lelExg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -483,19 +486,23 @@ packages: glob: 8.0.3 is-reference: 1.2.1 magic-string: 0.26.7 - rollup: 2.79.1 + rollup: 3.1.0 dev: false - /@rollup/plugin-json/4.1.0_rollup@2.79.1: - resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} + /@rollup/plugin-json/5.0.0_rollup@3.1.0: + resolution: {integrity: sha512-LsWDA5wJs/ggzakVuKQhZo7HPRcQZgBa3jWIVxQSFxaRToUGNi8ZBh3+k/gQ+1eInVYJgn4WBRCUkmoDrmmGzw==} + engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0 || ^2.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.79.1 - rollup: 2.79.1 + '@rollup/pluginutils': 4.2.1 + rollup: 3.1.0 dev: false - /@rollup/plugin-node-resolve/15.0.0_rollup@2.79.1: + /@rollup/plugin-node-resolve/15.0.0_rollup@3.1.0: resolution: {integrity: sha512-iwJbzfTzlzDDQcGmkS7EkCKwe2kSkdBrjX87Fy/KrNjr6UNnLpod0t6X66e502LRe5JJCA4FFqrEscWPnZAkig==} engines: {node: '>=14.0.0'} peerDependencies: @@ -510,29 +517,21 @@ packages: is-builtin-module: 3.2.0 is-module: 1.0.0 resolve: 1.22.1 - rollup: 2.79.1 - dev: false - - /@rollup/plugin-replace/4.0.0_rollup@2.79.1: - resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.79.1 - magic-string: 0.25.9 - rollup: 2.79.1 + rollup: 3.1.0 dev: false - /@rollup/pluginutils/3.1.0_rollup@2.79.1: - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} + /@rollup/plugin-replace/5.0.0_rollup@3.1.0: + resolution: {integrity: sha512-TiPmjMuBjQM+KLWK16O5TAM/eW4yXBYyQ17FbfeNzBC1t2kzX2aXoa8AlS9XTSmg6/2TNvkER1lMEEeN4Lhavw==} + engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.79.1 + '@rollup/pluginutils': 4.2.1 + magic-string: 0.26.7 + rollup: 3.1.0 dev: false /@rollup/pluginutils/4.2.1: @@ -543,7 +542,7 @@ packages: picomatch: 2.3.1 dev: false - /@rollup/pluginutils/5.0.1_rollup@2.79.1: + /@rollup/pluginutils/5.0.1_rollup@3.1.0: resolution: {integrity: sha512-4HaCVEXXuObvcPUaUlLt4faHYHCeQOOWNj8NKFGaRSrw3ZLD0TWeAFZicV9vXjnE2nkNuaVTfTuwAnjR+6uc9A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -555,7 +554,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 2.79.1 + rollup: 3.1.0 dev: false /@types/chai-subset/1.3.3: @@ -568,10 +567,6 @@ packages: resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} dev: true - /@types/estree/0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - dev: false - /@types/estree/1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} dev: false @@ -580,7 +575,7 @@ packages: resolution: {integrity: sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.7.16 + '@types/node': 18.8.5 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -602,15 +597,15 @@ packages: /@types/mkdirp/1.0.2: resolution: {integrity: sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ==} dependencies: - '@types/node': 18.7.16 + '@types/node': 18.8.5 dev: true /@types/mri/1.1.1: resolution: {integrity: sha512-nJOuiTlsvmClSr3+a/trTSx4DTuY/VURsWGKSf/eeavh0LRMqdsK60ti0TlwM5iHiGOK3/Ibkxsbr7i9rzGreA==} dev: true - /@types/node/18.7.16: - resolution: {integrity: sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==} + /@types/node/18.8.5: + resolution: {integrity: sha512-Bq7G3AErwe5A/Zki5fdD3O6+0zDChhg671NfPjtIcbtzDNZTv4NPKMRFr7gtYPG7y+B8uTiNK4Ngd9T0FTar6Q==} dev: true /@types/normalize-package-data/2.4.1: @@ -625,7 +620,7 @@ packages: resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} dependencies: '@types/glob': 8.0.0 - '@types/node': 18.7.16 + '@types/node': 18.8.5 dev: true /@typescript-eslint/eslint-plugin/5.36.2_qw4gzgesjmj52vnnfuwq55fcpu: @@ -1978,10 +1973,6 @@ packages: engines: {node: '>=4.0'} dev: true - /estree-walker/1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - dev: false - /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: false @@ -2633,12 +2624,6 @@ packages: yallist: 4.0.0 dev: true - /magic-string/0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: false - /magic-string/0.26.7: resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} engines: {node: '>=12'} @@ -3074,7 +3059,7 @@ packages: dependencies: glob: 7.2.3 - /rollup-plugin-dts/4.2.3_gypgyaqhine6mwjfvh7icfhviq: + /rollup-plugin-dts/4.2.3_iveik5itt6bizfkphibyk5djdy: resolution: {integrity: sha512-jlcpItqM2efqfIiKzDB/IKOS9E9fDvbkJSGw5GtK/PqPGS9eC3R3JKyw2VvpTktZA+TNgJRMu1NTv244aTUzzQ==} engines: {node: '>=v12.22.12'} peerDependencies: @@ -3082,13 +3067,13 @@ packages: typescript: ^4.1 dependencies: magic-string: 0.26.7 - rollup: 2.79.1 + rollup: 3.1.0 typescript: 4.8.4 optionalDependencies: '@babel/code-frame': 7.18.6 dev: false - /rollup-plugin-esbuild/4.10.1_fwemgdvumxap6dfcd4fpjmg6cy: + /rollup-plugin-esbuild/4.10.1_fclsl4c6gsr6cofi4hyljdq5fe: resolution: {integrity: sha512-/ymcRB283zjFp1JTBXO8ekxv0c9vRc2L6OTljghsLthQ4vqeDSDWa9BVz1tHiVrx6SbUnUpDPLC0K/MXK7j5TA==} engines: {node: '>=12'} peerDependencies: @@ -3101,7 +3086,7 @@ packages: esbuild: 0.15.10 joycon: 3.1.1 jsonc-parser: 3.2.0 - rollup: 2.79.1 + rollup: 3.1.0 transitivePeerDependencies: - supports-color dev: false @@ -3114,9 +3099,9 @@ packages: fsevents: 2.3.2 dev: true - /rollup/2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} + /rollup/3.1.0: + resolution: {integrity: sha512-GEvr+COcXicr4nuih6mpt2Eydq5lZ72z0RrKx1H4/Q2ouT34OHrIIJ9OUj2sZqUhq7QL8Hp8Q8BoWbjL/6ccRQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 @@ -3546,7 +3531,7 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.7.16 + '@types/node': 18.8.5 chai: 4.3.6 debug: 4.3.4 local-pkg: 0.4.2 diff --git a/src/builder/rollup.ts b/src/builder/rollup.ts index 929010d..4b389c2 100644 --- a/src/builder/rollup.ts +++ b/src/builder/rollup.ts @@ -116,7 +116,20 @@ export async function rollupBuild (ctx: BuildContext) { // TODO: Use fresh rollup options const shebangPlugin: any = rollupOptions.plugins.find(p => p && p.name === 'unbuild-shebang') shebangPlugin._options.preserve = false - rollupOptions.plugins.push(dts(ctx.options.rollup.dts)) + + // TODO: https://github.com/Swatinem/rollup-plugin-dts/issues/226 + const dtsPlugin = dts(ctx.options.rollup.dts) + rollupOptions.plugins.push({ + ...dtsPlugin, + outputOptions (...args) { + const opts = dtsPlugin.outputOptions(...args) + opts.interop = 'esModule' + delete opts.namespaceToStringTag + opts.generatedCode = { symbols: false, ...opts.generatedCode } + return opts + } + }) + await ctx.hooks.callHook('rollup:dts:options', ctx, rollupOptions) const typesBuild = await rollup(rollupOptions) await ctx.hooks.callHook('rollup:dts:build', ctx, typesBuild) @@ -138,7 +151,7 @@ export function getRollupOptions (ctx: BuildContext): RollupOptions { return `shared/${ctx.options.name}.[hash].${ext}` } - return { + return { input: Object.fromEntries(ctx.options.entries .filter(entry => entry.builder === 'rollup') .map(entry => [entry.name, resolve(ctx.options.rootDir, entry.input)]) @@ -151,7 +164,7 @@ export function getRollupOptions (ctx: BuildContext): RollupOptions { chunkFileNames: (chunk: PreRenderedChunk) => getChunkFilename(chunk, 'cjs'), format: 'cjs', exports: 'auto', - preferConst: true, + generatedCode: { constBindings: true }, externalLiveBindings: false, freeze: false }, @@ -161,7 +174,7 @@ export function getRollupOptions (ctx: BuildContext): RollupOptions { chunkFileNames: (chunk: PreRenderedChunk) => getChunkFilename(chunk, 'mjs'), format: 'esm', exports: 'auto', - preferConst: true, + generatedCode: { constBindings: true }, externalLiveBindings: false, freeze: false }