From af00412dab6315de95d52ecc345c769e5e3cca44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 26 Sep 2024 09:35:53 +0200 Subject: [PATCH] tailwindcss: Write to a temp file as a workaround for upstream bug As a workaround for what seems to be a bug in tailwindcss 4.0.0-alpha.25. See #12880 --- .gitignore | 3 +- .../cssjs/tailwindcss.go | 28 ++++++++++++++----- .../cssjs/tailwindcss_integration_test.go | 4 +-- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index b170fe204cc..28d3e0262f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.test -imports.* \ No newline at end of file +imports.* +debug.log \ No newline at end of file diff --git a/resources/resource_transformers/cssjs/tailwindcss.go b/resources/resource_transformers/cssjs/tailwindcss.go index beda7a646fe..f7d0dc31329 100644 --- a/resources/resource_transformers/cssjs/tailwindcss.go +++ b/resources/resource_transformers/cssjs/tailwindcss.go @@ -16,6 +16,7 @@ package cssjs import ( "bytes" "io" + "os" "regexp" "strings" @@ -115,12 +116,11 @@ func (t *tailwindcssTransformation) Transform(ctx *resources.ResourceTransformat return err } - stdin, err := cmd.StdinPipe() + // See https://github.com/gohugoio/hugo/issues/12880 + /*stdin, err := cmd.StdinPipe() if err != nil { return err - } - - src := ctx.From + }*/ imp := newImportResolver( ctx.From, @@ -129,15 +129,29 @@ func (t *tailwindcssTransformation) Transform(ctx *resources.ResourceTransformat t.rs.Assets.Fs, t.rs.Logger, ctx.DependencyManager, ) - src, err = imp.resolve() + src, err := imp.resolve() + if err != nil { + return err + } + + tmpFile, err := os.CreateTemp("", "hugo-tailwindcss-*") + if err != nil { + return err + } + defer func() { + tmpFile.Close() + os.Remove(tmpFile.Name()) + }() + + _, err = io.Copy(tmpFile, src) if err != nil { return err } - go func() { + /*go func() { defer stdin.Close() io.Copy(stdin, src) - }() + }()*/ err = cmd.Run() if err != nil { diff --git a/resources/resource_transformers/cssjs/tailwindcss_integration_test.go b/resources/resource_transformers/cssjs/tailwindcss_integration_test.go index ddd78b62f4b..88efd43cf85 100644 --- a/resources/resource_transformers/cssjs/tailwindcss_integration_test.go +++ b/resources/resource_transformers/cssjs/tailwindcss_integration_test.go @@ -36,8 +36,8 @@ func TestTailwindV4Basic(t *testing.T) { "url": "https://github.com/bep/hugo-starter-tailwind-basic.git" }, "devDependencies": { - "@tailwindcss/cli": "^4.0.0-alpha.16", - "tailwindcss": "^4.0.0-alpha.16" + "@tailwindcss/cli": "^4.0.0-alpha.25", + "tailwindcss": "^4.0.0-alpha.25" }, "name": "hugo-starter-tailwind-basic", "version": "0.1.0"