mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
In Tailwind v4 the CSS file is the main entry point to your project and is generally configured via `@theme`. However, given that all v3 projects were configured via a `tailwind.config.js` file we definitely need to support those. This PR adds support for loading existing Tailwind config files by adding an `@config` directive to the CSS — similar to how v3 supported multiple config files except that this is now _required_ to use a config file. You can load a config file like so: ``` @import "tailwindcss"; @config "./path/to/tailwind.config.js"; ``` A few notes: - Both CommonJS and ESM config files are supported (loaded directly via `import()` in Node) - This is not yet supported in Intellisense or Prettier — should hopefully land next week - TypeScript is **not yet** supported in the config file — this will be handled in a future PR. --------- Co-authored-by: Philipp Spiess <hello@philippspiess.com> Co-authored-by: Adam Wathan <adam.wathan@gmail.com> Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
23 lines
563 B
TypeScript
23 lines
563 B
TypeScript
import { isBuiltin, type ResolveHook } from 'node:module'
|
|
|
|
export let resolve: ResolveHook = async (specifier, context, nextResolve) => {
|
|
let result = await nextResolve(specifier, context)
|
|
|
|
if (result.url === import.meta.url) return result
|
|
if (isBuiltin(result.url)) return result
|
|
if (!context.parentURL) return result
|
|
|
|
let parent = new URL(context.parentURL)
|
|
|
|
let id = parent.searchParams.get('id')
|
|
if (id === null) return result
|
|
|
|
let url = new URL(result.url)
|
|
url.searchParams.set('id', id)
|
|
|
|
return {
|
|
...result,
|
|
url: `${url}`,
|
|
}
|
|
}
|