From f544e3b558a4123dbc616b639e6a315972492b98 Mon Sep 17 00:00:00 2001 From: Inesh Bose Date: Wed, 9 Apr 2025 16:16:49 +0000 Subject: [PATCH 1/3] chore: initial --- playground/tailwind.config.ts | 5 +++-- src/config.ts | 13 ++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/playground/tailwind.config.ts b/playground/tailwind.config.ts index 44374f74..2d94744d 100644 --- a/playground/tailwind.config.ts +++ b/playground/tailwind.config.ts @@ -1,7 +1,8 @@ import typography from '@tailwindcss/typography' import colors from 'tailwindcss/colors' +import { defineConfig } from '../src/config' -export default { +export default defineConfig({ theme: { extend: { colors: { @@ -15,4 +16,4 @@ export default { plugins: [ typography(), ], -} +}) diff --git a/src/config.ts b/src/config.ts index d0d5fc87..4e1e5e61 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,5 +1,16 @@ +import { fileURLToPath } from 'node:url' +import { resolve } from 'pathe' import { createDefineConfig } from 'c12' +import { tryUseNuxt, requireModule } from '@nuxt/kit' import type { Config } from 'tailwindcss' -export const defineConfig = createDefineConfig>() +const pathToThisFile = resolve(fileURLToPath(import.meta.url)) +const pathPassedToNode = resolve(process.argv[1]) +const isMainFile = pathToThisFile.includes(pathPassedToNode) + +const _defineConfig = createDefineConfig>() +export const defineConfig: typeof _defineConfig = (config) => { + const isNuxt = !!tryUseNuxt() + return isNuxt ? config : isMainFile ? requireModule('.nuxt/tailwind/postcss.mjs') : config +} export default defineConfig From 59448f52e0ff1a71bdbc6dff3b4760bc4a6db147 Mon Sep 17 00:00:00 2001 From: Inesh Bose Date: Wed, 9 Apr 2025 16:21:32 +0000 Subject: [PATCH 2/3] resolve unicorn-magic --- package.json | 3 ++- pnpm-lock.yaml | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 18cb528f..d4979349 100755 --- a/package.json +++ b/package.json @@ -97,7 +97,8 @@ "packageManager": "pnpm@9.15.3", "resolutions": { "@nuxtjs/tailwindcss": "link:.", - "@nuxt/ui": "npm:@nuxt/ui-edge" + "@nuxt/ui": "npm:@nuxt/ui-edge", + "unicorn-magic": "0.2.0" }, "stackblitz": { "startCommand": "pnpm dev:prepare && pnpm dev" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d3c34e2..6f64ffa4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ settings: overrides: '@nuxtjs/tailwindcss': link:. '@nuxt/ui': npm:@nuxt/ui-edge + unicorn-magic: 0.2.0 importers: @@ -5364,8 +5365,8 @@ packages: unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} - unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + unicorn-magic@0.2.0: + resolution: {integrity: sha512-q83y+/QtXrbKX1jYY+bdQROAbZj6EeSP+Plv0cYZBMPfirSaEvnnhMwRk2WH4n5XkNCQHygAiwTVNpvw3I1dCg==} engines: {node: '>=18'} unified@11.0.5: @@ -9675,7 +9676,7 @@ snapshots: ignore: 7.0.3 path-type: 6.0.0 slash: 5.1.0 - unicorn-magic: 0.3.0 + unicorn-magic: 0.2.0 google-fonts-helper@3.5.0: dependencies: @@ -10975,7 +10976,7 @@ snapshots: npm-run-path@6.0.0: dependencies: path-key: 4.0.0 - unicorn-magic: 0.3.0 + unicorn-magic: 0.2.0 nth-check@2.1.1: dependencies: @@ -12677,7 +12678,7 @@ snapshots: pako: 0.2.9 tiny-inflate: 1.0.3 - unicorn-magic@0.3.0: {} + unicorn-magic@0.2.0: {} unified@11.0.5: dependencies: From 99cc0f634e686db55c0f9cd6366440f1301d94bb Mon Sep 17 00:00:00 2001 From: Inesh Bose Date: Thu, 24 Apr 2025 10:35:18 +0000 Subject: [PATCH 3/3] fix: attempt with unctx --- package.json | 8 +++++++- src/config-ctx.ts | 3 +++ src/config.ts | 9 +++------ src/internal-context/load.ts | 1 + 4 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 src/config-ctx.ts diff --git a/package.json b/package.json index 05a0d9b6..44281d2b 100755 --- a/package.json +++ b/package.json @@ -24,6 +24,11 @@ "types": "./dist/merger.d.ts", "require": "./dist/merger.cjs", "import": "./dist/merger.mjs" + }, + "./config-ctx": { + "types": "./dist/config-ctx.d.ts", + "require": "./dist/config-ctx.cjs", + "import": "./dist/config-ctx.mjs" } }, "main": "./dist/module.cjs", @@ -34,7 +39,8 @@ "build": { "entries": [ "./src/config", - "./src/merger" + "./src/merger", + "./src/config-ctx" ], "externals": [ "@tailwindcss/vite" diff --git a/src/config-ctx.ts b/src/config-ctx.ts new file mode 100644 index 00000000..4c305dbd --- /dev/null +++ b/src/config-ctx.ts @@ -0,0 +1,3 @@ +import { ctx } from './config' + +ctx.set(true) diff --git a/src/config.ts b/src/config.ts index 4e1e5e61..ef591326 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,16 +1,13 @@ -import { fileURLToPath } from 'node:url' -import { resolve } from 'pathe' import { createDefineConfig } from 'c12' +import { getContext } from 'unctx' import { tryUseNuxt, requireModule } from '@nuxt/kit' import type { Config } from 'tailwindcss' -const pathToThisFile = resolve(fileURLToPath(import.meta.url)) -const pathPassedToNode = resolve(process.argv[1]) -const isMainFile = pathToThisFile.includes(pathPassedToNode) +export const ctx = getContext('tw-config-ctx') const _defineConfig = createDefineConfig>() export const defineConfig: typeof _defineConfig = (config) => { const isNuxt = !!tryUseNuxt() - return isNuxt ? config : isMainFile ? requireModule('.nuxt/tailwind/postcss.mjs') : config + return isNuxt || ctx.tryUse() ? config : requireModule('.nuxt/tailwind/postcss.mjs') } export default defineConfig diff --git a/src/internal-context/load.ts b/src/internal-context/load.ts index 2629f2cc..153ef7f2 100644 --- a/src/internal-context/load.ts +++ b/src/internal-context/load.ts @@ -216,6 +216,7 @@ const createInternalContext = async (moduleOptions: ModuleOptions, nuxt = useNux return [ `// generated by the @nuxtjs/tailwindcss module at ${(new Date()).toLocaleString()}`, + 'import "@nuxtjs/tailwindcss/config-ctx"', `import configMerger from "@nuxtjs/tailwindcss/merger";\n`, layerConfigs.map(([i, _]) => i).filter(Boolean).join(';\n') + ';', 'const config = [',