diff options
author | 2023-01-05 16:02:35 +0800 | |
---|---|---|
committer | 2023-01-05 16:02:35 +0800 | |
commit | a3a7fc9298e6d88abb4b7bee1e58f05fa9558cf1 (patch) | |
tree | af7ecd67a30af385b3df8e43e89a7f0067a5429c /packages/integrations/tailwind/src | |
parent | 63ef130e7670f64eff326d92e9654752ed52ddf4 (diff) | |
download | astro-a3a7fc9298e6d88abb4b7bee1e58f05fa9558cf1.tar.gz astro-a3a7fc9298e6d88abb4b7bee1e58f05fa9558cf1.tar.zst astro-a3a7fc9298e6d88abb4b7bee1e58f05fa9558cf1.zip |
Refactor tailwind integration setup (#5717)
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Diffstat (limited to 'packages/integrations/tailwind/src')
-rw-r--r-- | packages/integrations/tailwind/src/index.ts | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/packages/integrations/tailwind/src/index.ts b/packages/integrations/tailwind/src/index.ts index 28def50c7..951868e9f 100644 --- a/packages/integrations/tailwind/src/index.ts +++ b/packages/integrations/tailwind/src/index.ts @@ -66,6 +66,20 @@ async function getUserConfig(root: URL, configPath?: string, isRestart = false) } } +function getViteConfiguration(isBuild: boolean, tailwindConfig: TailwindConfig) { + const postcssPlugins = [tailwindPlugin(tailwindConfig)]; + if (isBuild) { + postcssPlugins.push(autoprefixerPlugin()); + } + return { + css: { + postcss: { + plugins: postcssPlugins, + }, + }, + }; +} + type TailwindOptions = | { config?: { @@ -92,7 +106,14 @@ export default function tailwindIntegration(options?: TailwindOptions): AstroInt return { name: '@astrojs/tailwind', hooks: { - 'astro:config:setup': async ({ config, injectScript, addWatchFile, isRestart }) => { + 'astro:config:setup': async ({ + command, + config, + updateConfig, + injectScript, + addWatchFile, + isRestart, + }) => { // Inject the Tailwind postcss plugin const userConfig = await getUserConfig(config.root, customConfigPath, isRestart); @@ -108,10 +129,9 @@ export default function tailwindIntegration(options?: TailwindOptions): AstroInt addWatchFile(userConfig.filePath); } - const tailwindConfig: TailwindConfig = + const tailwindConfig = (userConfig?.value as TailwindConfig) ?? getDefaultTailwindConfig(config.srcDir); - config.style.postcss.plugins.push(tailwindPlugin(tailwindConfig)); - config.style.postcss.plugins.push(autoprefixerPlugin); + updateConfig({ vite: getViteConfiguration(command === 'build', tailwindConfig) }); if (applyBaseStyles) { // Inject the Tailwind base import |