diff --git a/package.json b/package.json index 7cdd7149ec2c01..c8d3545fe57519 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "prompts": "^2.4.2", "resolve": "^1.22.1", "rimraf": "^4.1.2", - "rollup": "^3.18.0", + "rollup": "^3.20.0", "semver": "^7.3.8", "simple-git-hooks": "^2.8.1", "tslib": "^2.5.0", diff --git a/packages/vite/package.json b/packages/vite/package.json index cb996a035acf97..d3daf7938255da 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -69,7 +69,7 @@ "esbuild": "^0.17.5", "postcss": "^8.4.21", "resolve": "^1.22.1", - "rollup": "^3.18.0" + "rollup": "^3.20.0" }, "optionalDependencies": { "fsevents": "~2.3.2" diff --git a/playground/css-codesplit/__tests__/css-codesplit-consistent.spec.ts b/playground/css-codesplit/__tests__/css-codesplit-consistent.spec.ts new file mode 100644 index 00000000000000..4da121a652d0db --- /dev/null +++ b/playground/css-codesplit/__tests__/css-codesplit-consistent.spec.ts @@ -0,0 +1,15 @@ +import { beforeEach, describe, expect, test } from 'vitest' +import { findAssetFile, isBuild, startDefaultServe } from '~utils' + +beforeEach(async () => { + await startDefaultServe() +}) + +for (let i = 0; i < 5; i++) { + describe.runIf(isBuild)('css-codesplit build', () => { + test('should be consistent with same content', () => { + expect(findAssetFile(/style-.+\.css/)).toMatch('h2{color:#00f}') + expect(findAssetFile(/style2-.+\.css/)).toBe('') + }) + }) +} diff --git a/playground/css-codesplit/__tests__/css-codesplit.spec.ts b/playground/css-codesplit/__tests__/css-codesplit.spec.ts index e1b4f26fc6a9e3..6aae9619c5e0e9 100644 --- a/playground/css-codesplit/__tests__/css-codesplit.spec.ts +++ b/playground/css-codesplit/__tests__/css-codesplit.spec.ts @@ -30,7 +30,7 @@ test('style order should be consistent when style tag is inserted by JS', async describe.runIf(isBuild)('build', () => { test('should remove empty chunk', async () => { - expect(findAssetFile(/style.*\.js$/)).toBe('') + expect(findAssetFile(/style-.*\.js$/)).toBe('') expect(findAssetFile('main.*.js$')).toMatch(`/* empty css`) expect(findAssetFile('other.*.js$')).toMatch(`/* empty css`) expect(findAssetFile(/async.*\.js$/)).toBe('') diff --git a/playground/css-codesplit/style2.css b/playground/css-codesplit/style2.css new file mode 100644 index 00000000000000..2b4bb3671e654b --- /dev/null +++ b/playground/css-codesplit/style2.css @@ -0,0 +1,3 @@ +h2 { + color: blue; +} diff --git a/playground/css-codesplit/style2.js b/playground/css-codesplit/style2.js new file mode 100644 index 00000000000000..ab7ebb9eb632a6 --- /dev/null +++ b/playground/css-codesplit/style2.js @@ -0,0 +1 @@ +import './style2.css' diff --git a/playground/css-codesplit/vite.config.js b/playground/css-codesplit/vite.config.js index 962dbbb103192e..3e0d3ac3540be5 100644 --- a/playground/css-codesplit/vite.config.js +++ b/playground/css-codesplit/vite.config.js @@ -8,6 +8,7 @@ export default defineConfig({ input: { main: resolve(__dirname, './index.html'), other: resolve(__dirname, './other.js'), + style2: resolve(__dirname, './style2.js'), }, output: { manualChunks(id) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af77b56d9db759..97c07b405e12ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,7 +60,7 @@ importers: prompts: ^2.4.2 resolve: ^1.22.1 rimraf: ^4.1.2 - rollup: ^3.18.0 + rollup: ^3.20.0 semver: ^7.3.8 simple-git-hooks: ^2.8.1 tslib: ^2.5.0 @@ -74,7 +74,7 @@ importers: devDependencies: '@babel/types': 7.21.2 '@microsoft/api-extractor': 7.34.4_@types+node@18.14.6 - '@rollup/plugin-typescript': 11.0.0_4q7j355ysiiqioek4f6ex367by + '@rollup/plugin-typescript': 11.0.0_ic46el5hfgdxjspsfr4ii6ggfa '@types/babel__core': 7.20.0 '@types/babel__standalone': 7.1.4 '@types/convert-source-map': 2.0.0 @@ -115,7 +115,7 @@ importers: prompts: 2.4.2 resolve: 1.22.1 rimraf: 4.1.2 - rollup: 3.18.0 + rollup: 3.20.0 semver: 7.3.8 simple-git-hooks: 2.8.1 tslib: 2.5.0 @@ -215,7 +215,7 @@ importers: postcss-modules: ^6.0.0 resolve: ^1.22.1 resolve.exports: ^2.0.1 - rollup: ^3.18.0 + rollup: ^3.20.0 rollup-plugin-license: ^3.0.1 sirv: ^2.0.2 source-map-js: ^1.0.2 @@ -231,7 +231,7 @@ importers: esbuild: 0.17.5 postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.18.0 + rollup: 3.20.0 optionalDependencies: fsevents: 2.3.2 devDependencies: @@ -239,13 +239,13 @@ importers: '@babel/parser': 7.21.2 '@babel/types': 7.21.2 '@jridgewell/trace-mapping': 0.3.17 - '@rollup/plugin-alias': 4.0.3_rollup@3.18.0 - '@rollup/plugin-commonjs': 24.0.1_rollup@3.18.0 - '@rollup/plugin-dynamic-import-vars': 2.0.3_rollup@3.18.0 - '@rollup/plugin-json': 6.0.0_rollup@3.18.0 - '@rollup/plugin-node-resolve': 15.0.1_rollup@3.18.0 - '@rollup/plugin-typescript': 11.0.0_rollup@3.18.0+tslib@2.5.0 - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/plugin-alias': 4.0.3_rollup@3.20.0 + '@rollup/plugin-commonjs': 24.0.1_rollup@3.20.0 + '@rollup/plugin-dynamic-import-vars': 2.0.3_rollup@3.20.0 + '@rollup/plugin-json': 6.0.0_rollup@3.20.0 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.20.0 + '@rollup/plugin-typescript': 11.0.0_rollup@3.20.0+tslib@2.5.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 acorn: 8.8.2 acorn-walk: 8.2.0_acorn@8.8.2 cac: 6.7.14 @@ -280,7 +280,7 @@ importers: postcss-load-config: 4.0.1_postcss@8.4.21 postcss-modules: 6.0.0_postcss@8.4.21 resolve.exports: 2.0.1 - rollup-plugin-license: 3.0.1_rollup@3.18.0 + rollup-plugin-license: 3.0.1_rollup@3.20.0 sirv: 2.0.2_hmoqtj4vy3i7wnpchga2a2mu3y source-map-js: 1.0.2 source-map-support: 0.5.21 @@ -3151,7 +3151,7 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/plugin-alias/4.0.3_rollup@3.18.0: + /@rollup/plugin-alias/4.0.3_rollup@3.20.0: resolution: {integrity: sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3160,11 +3160,11 @@ packages: rollup: optional: true dependencies: - rollup: 3.18.0 + rollup: 3.20.0 slash: 4.0.0 dev: true - /@rollup/plugin-commonjs/24.0.1_rollup@3.18.0: + /@rollup/plugin-commonjs/24.0.1_rollup@3.20.0: resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3173,16 +3173,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.0.3 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.18.0 + rollup: 3.20.0 dev: true - /@rollup/plugin-dynamic-import-vars/2.0.3_rollup@3.18.0: + /@rollup/plugin-dynamic-import-vars/2.0.3_rollup@3.20.0: resolution: {integrity: sha512-0zQV0TDDewilU+7ZLmwc0u44SkeRxSxMdINBuX5isrQGJ6EdTjVL1TcnOZ9In99byaSGAQnHmSFw+6hm0E/jrw==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3191,14 +3191,14 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 estree-walker: 2.0.2 fast-glob: 3.2.12 magic-string: 0.27.0 - rollup: 3.18.0 + rollup: 3.20.0 dev: true - /@rollup/plugin-json/6.0.0_rollup@3.18.0: + /@rollup/plugin-json/6.0.0_rollup@3.20.0: resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3207,11 +3207,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 - rollup: 3.18.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 + rollup: 3.20.0 dev: true - /@rollup/plugin-node-resolve/15.0.1_rollup@3.18.0: + /@rollup/plugin-node-resolve/15.0.1_rollup@3.20.0: resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3220,16 +3220,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 '@types/resolve': 1.20.2 deepmerge: 4.2.2 is-builtin-module: 3.2.0 is-module: 1.0.0 resolve: 1.22.1 - rollup: 3.18.0 + rollup: 3.20.0 dev: true - /@rollup/plugin-replace/5.0.2_rollup@3.18.0: + /@rollup/plugin-replace/5.0.2_rollup@3.20.0: resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3238,12 +3238,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 magic-string: 0.27.0 - rollup: 3.18.0 + rollup: 3.20.0 dev: true - /@rollup/plugin-typescript/11.0.0_4q7j355ysiiqioek4f6ex367by: + /@rollup/plugin-typescript/11.0.0_ic46el5hfgdxjspsfr4ii6ggfa: resolution: {integrity: sha512-goPyCWBiimk1iJgSTgsehFD5OOFHiAknrRJjqFCudcW8JtWiBlK284Xnn4flqMqg6YAjVG/EE+3aVzrL5qNSzQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3256,14 +3256,14 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 resolve: 1.22.1 - rollup: 3.18.0 + rollup: 3.20.0 tslib: 2.5.0 typescript: 4.9.3 dev: true - /@rollup/plugin-typescript/11.0.0_rollup@3.18.0+tslib@2.5.0: + /@rollup/plugin-typescript/11.0.0_rollup@3.20.0+tslib@2.5.0: resolution: {integrity: sha512-goPyCWBiimk1iJgSTgsehFD5OOFHiAknrRJjqFCudcW8JtWiBlK284Xnn4flqMqg6YAjVG/EE+3aVzrL5qNSzQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3276,13 +3276,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 resolve: 1.22.1 - rollup: 3.18.0 + rollup: 3.20.0 tslib: 2.5.0 dev: true - /@rollup/pluginutils/5.0.2_rollup@3.18.0: + /@rollup/pluginutils/5.0.2_rollup@3.20.0: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3294,7 +3294,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.18.0 + rollup: 3.20.0 dev: true /@rushstack/node-core-library/3.55.2_@types+node@18.14.6: @@ -8516,7 +8516,7 @@ packages: hasBin: true dev: true - /rollup-plugin-dts/5.2.0_fn2onl6nbsljlgjr3jlzr6w7we: + /rollup-plugin-dts/5.2.0_pn5zetjg24cqcolt42iry5qj6a: resolution: {integrity: sha512-B68T/haEu2MKcz4kNUhXB8/h5sq4gpplHAJIYNHbh8cp4ZkvzDvNca/11KQdFrB9ZeKucegQIotzo5T0JUtM8w==} engines: {node: '>=v14'} peerDependencies: @@ -8524,13 +8524,13 @@ packages: typescript: ^4.1 dependencies: magic-string: 0.29.0 - rollup: 3.18.0 + rollup: 3.20.0 typescript: 4.9.5 optionalDependencies: '@babel/code-frame': 7.18.6 dev: true - /rollup-plugin-license/3.0.1_rollup@3.18.0: + /rollup-plugin-license/3.0.1_rollup@3.20.0: resolution: {integrity: sha512-/lec6Y94Y3wMfTDeYTO/jSXII0GQ/XkDZCiqkMKxyU5D5nGPaxr/2JNYvAgYsoCYuOLGOanKDPjCCQiTT96p7A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -8543,13 +8543,13 @@ packages: mkdirp: 1.0.4 moment: 2.29.3 package-name-regex: 2.0.6 - rollup: 3.18.0 + rollup: 3.20.0 spdx-expression-validate: 2.0.0 spdx-satisfies: 5.0.1 dev: true - /rollup/3.18.0: - resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==} + /rollup/3.20.0: + resolution: {integrity: sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -9459,12 +9459,12 @@ packages: resolution: {integrity: sha512-EK5LeABThyn5KbX0eo5c7xKRQhnHVxKN8/e5Y+YQEf4ZobJB6OZ766756wbVqzIY/G/MvAfLbc6EwFPdSNnlpA==} hasBin: true dependencies: - '@rollup/plugin-alias': 4.0.3_rollup@3.18.0 - '@rollup/plugin-commonjs': 24.0.1_rollup@3.18.0 - '@rollup/plugin-json': 6.0.0_rollup@3.18.0 - '@rollup/plugin-node-resolve': 15.0.1_rollup@3.18.0 - '@rollup/plugin-replace': 5.0.2_rollup@3.18.0 - '@rollup/pluginutils': 5.0.2_rollup@3.18.0 + '@rollup/plugin-alias': 4.0.3_rollup@3.20.0 + '@rollup/plugin-commonjs': 24.0.1_rollup@3.20.0 + '@rollup/plugin-json': 6.0.0_rollup@3.20.0 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.20.0 + '@rollup/plugin-replace': 5.0.2_rollup@3.20.0 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 chalk: 5.2.0 consola: 2.15.3 defu: 6.1.2 @@ -9479,8 +9479,8 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 pretty-bytes: 6.1.0 - rollup: 3.18.0 - rollup-plugin-dts: 5.2.0_fn2onl6nbsljlgjr3jlzr6w7we + rollup: 3.20.0 + rollup-plugin-dts: 5.2.0_pn5zetjg24cqcolt42iry5qj6a scule: 1.0.0 typescript: 4.9.5 untyped: 1.2.2