summaryrefslogtreecommitdiff
path: root/packages/integrations/tailwind/src
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2023-01-05 16:02:35 +0800
committerGravatar GitHub <noreply@github.com> 2023-01-05 16:02:35 +0800
commita3a7fc9298e6d88abb4b7bee1e58f05fa9558cf1 (patch)
treeaf7ecd67a30af385b3df8e43e89a7f0067a5429c /packages/integrations/tailwind/src
parent63ef130e7670f64eff326d92e9654752ed52ddf4 (diff)
downloadastro-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.ts28
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