diff --git a/CHANGELOG.md b/CHANGELOG.md index 172e95fdf7fe..e6bb0aed5226 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - _Experimental_: Improve codemod output, keep CSS after last Tailwind directive unlayered ([#14512](https://github.com/tailwindlabs/tailwindcss/pull/14512)) +- _Experimental_: Fix incorrect empty `layer()` at the end of `@import` at-rules when running codemods ([#14513](https://github.com/tailwindlabs/tailwindcss/pull/14513)) ## [4.0.0-alpha.25] - 2024-09-24 diff --git a/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.test.ts b/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.test.ts index 9cae49b04fd7..4fd81cf6d48e 100644 --- a/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.test.ts +++ b/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.test.ts @@ -14,6 +14,14 @@ function migrate(input: string) { .then((result) => result.css) } +it('should not migrate already migrated `@import` at-rules', async () => { + expect( + await migrate(css` + @import 'tailwindcss'; + `), + ).toMatchInlineSnapshot(`"@import 'tailwindcss';"`) +}) + it('should migrate rules between tailwind directives', async () => { expect( await migrate(css` diff --git a/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.ts b/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.ts index 39f60e4cf1a9..4e25656d95b0 100644 --- a/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.ts +++ b/packages/@tailwindcss-upgrade/src/codemods/migrate-missing-layers.ts @@ -65,7 +65,7 @@ export function migrateMissingLayers(): Plugin { // Add layer to `@import` at-rules if (node.name === 'import') { - if (!node.params.includes('layer(')) { + if (lastLayer !== '' && !node.params.includes('layer(')) { node.params += ` layer(${lastLayer})` }