From da9b9789bfea2ccaffce74ea3385a5362d8c22a3 Mon Sep 17 00:00:00 2001 From: Qingyu Wang Date: Sat, 9 Nov 2024 17:28:41 +0800 Subject: [PATCH 1/2] fix: do not generate `tailwind.config.js` in dist/ --- src/TailwindCSSRspackPlugin.ts | 29 +++++++++++++++++++++-------- test/basic/index.test.ts | 16 +++++++++++++++- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/TailwindCSSRspackPlugin.ts b/src/TailwindCSSRspackPlugin.ts index 8202c59..456a9a8 100644 --- a/src/TailwindCSSRspackPlugin.ts +++ b/src/TailwindCSSRspackPlugin.ts @@ -1,4 +1,5 @@ -import { mkdir, writeFile } from 'node:fs/promises'; +import { mkdtemp, writeFile } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; import path from 'node:path'; import { pathToFileURL } from 'node:url'; @@ -184,13 +185,14 @@ class TailwindRspackPluginImpl { : // biome-ignore lint/style/noNonNullAssertion: should have context path.resolve(this.compiler.options.context!, this.options.config); - const outputDir = path.resolve( - // biome-ignore lint/style/noNonNullAssertion: should have `output.path` - this.compiler.options.output.path!, - '.rsbuild', - entryName, - ); - await mkdir(outputDir, { recursive: true }); + const outputDir = DEBUG + ? path.resolve( + // biome-ignore lint/style/noNonNullAssertion: should have `output.path` + this.compiler.options.output.path!, + '.rsbuild', + entryName, + ) + : await mkdtemp(tmpdir()); const configPath = path.resolve(outputDir, 'tailwind.config.mjs'); @@ -220,3 +222,14 @@ function collectModules( entryModules.add(module.resource); } } + +const DEBUG = (function isDebug() { + if (!process.env.DEBUG) { + return false; + } + + const values = process.env.DEBUG.toLocaleLowerCase().split(','); + return ['rsbuild', 'rsbuild:tailwind', 'rsbuild:*', '*'].some((key) => + values.includes(key), + ); +})(); diff --git a/test/basic/index.test.ts b/test/basic/index.test.ts index 536cd9c..f577e1f 100644 --- a/test/basic/index.test.ts +++ b/test/basic/index.test.ts @@ -1,4 +1,5 @@ -import { dirname } from 'node:path'; +import { existsSync } from 'node:fs'; +import { dirname, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; import { expect, test } from '@playwright/test'; import { createRsbuild } from '@rsbuild/core'; @@ -64,3 +65,16 @@ test('should build with tailwind utilities', async ({ page }) => { await server.close(); }); + +test('should not generate tailwind.config.js in dist/', async () => { + const rsbuild = await createRsbuild({ + cwd: __dirname, + rsbuildConfig: { + plugins: [pluginTailwindCSS()], + }, + }); + + await rsbuild.build(); + + expect(existsSync(resolve(__dirname, './dist/.rsbuild'))).toBeFalsy(); +}); From 8d199228aa4cec6d9291e6798ac184f837c0627b Mon Sep 17 00:00:00 2001 From: Qingyu Wang Date: Sat, 9 Nov 2024 17:43:36 +0800 Subject: [PATCH 2/2] fix: tmpdir --- src/TailwindCSSRspackPlugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TailwindCSSRspackPlugin.ts b/src/TailwindCSSRspackPlugin.ts index 456a9a8..bd4296a 100644 --- a/src/TailwindCSSRspackPlugin.ts +++ b/src/TailwindCSSRspackPlugin.ts @@ -192,7 +192,7 @@ class TailwindRspackPluginImpl { '.rsbuild', entryName, ) - : await mkdtemp(tmpdir()); + : await mkdtemp(path.join(tmpdir(), entryName)); const configPath = path.resolve(outputDir, 'tailwind.config.mjs');