Browse Source
On Windows, turbopack/utoopack passes a doubled relative path as the PostCSS `from` option (e.g. `./Desktop/demo/project/src/file.css` instead of `./src/file.css`), causing `@tailwindcss/postcss` to resolve `@import "tailwindcss"` from a non-existent directory. Add a lightweight PostCSS plugin that detects the broken path (file does not exist) and corrects it before `@tailwindcss/postcss` reads it. On macOS/Linux the plugin is a no-op. Also fix `@source "./src"` → `@source "."` in `src/tailwind.css`: `@source` paths are relative to the CSS file, so `./src` resolved to the non-existent `src/src/` directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>pull/11749/head
2 changed files with 34 additions and 4 deletions
@ -1,5 +1,35 @@ |
|||
module.exports = { |
|||
plugins: { |
|||
'@tailwindcss/postcss': {}, |
|||
const path = require('path'); |
|||
const fs = require('fs'); |
|||
|
|||
/** |
|||
* Workaround for turbopack Windows path doubling bug. |
|||
* On Windows, turbopack may pass a doubled relative path as the `from` option |
|||
* to PostCSS (e.g. `./Desktop/demo/project/src/file.css` instead of `./src/file.css`), |
|||
* causing `path.resolve(cwd, from)` to produce a non-existent doubled path. |
|||
* This plugin detects and corrects the path before @tailwindcss/postcss reads it. |
|||
* @see https://github.com/ant-design/ant-design-pro/issues/11747
|
|||
*/ |
|||
const fixWindowsPathPlugin = { |
|||
postcssPlugin: 'fix-turbopack-windows-path', |
|||
Once(_root, { result }) { |
|||
const from = result.opts.from; |
|||
if (!from || fs.existsSync(from)) return; |
|||
|
|||
const cwd = process.cwd(); |
|||
const resolved = path.resolve(from); |
|||
const relative = path.relative(cwd, resolved); |
|||
const parts = relative.split(path.sep); |
|||
|
|||
for (let i = 1; i < parts.length; i++) { |
|||
const candidate = path.join(cwd, ...parts.slice(i)); |
|||
if (fs.existsSync(candidate)) { |
|||
result.opts.from = candidate; |
|||
return; |
|||
} |
|||
} |
|||
}, |
|||
}; |
|||
|
|||
module.exports = { |
|||
plugins: [fixWindowsPathPlugin, require('@tailwindcss/postcss')], |
|||
}; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
@import "tailwindcss"; |
|||
|
|||
@source "./src"; |
|||
@source "."; |
|||
|
|||
Loading…
Reference in new issue