Agent-almanac setup-tailwind-typescript
git clone https://github.com/pjt222/agent-almanac
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/de/skills/setup-tailwind-typescript" ~/.claude/skills/pjt222-agent-almanac-setup-tailwind-typescript-7dd007 && rm -rf "$T"
i18n/de/skills/setup-tailwind-typescript/SKILL.mdTailwind CSS + TypeScript einrichten
Tailwind CSS und TypeScript in einem bestehenden Webprojekt konfigurieren, mit korrektem PostCSS-Setup und IDE-Integration.
Wann verwenden
- Tailwind CSS zu einem vorhandenen Next.js- oder React-Projekt hinzufügen
- TypeScript-Konfiguration in einem bestehenden JavaScript-Projekt einrichten
- Beides nach einem Framework-Upgrade neu konfigurieren
- Pfad-Aliase und IDE-Unterstützung für ein Projekt einrichten
Eingaben
- Erforderlich: Vorhandenes Node.js-Projekt mit
package.json - Optional: Framework (Next.js, Vite, Create React App — beeinflusst Konfigurationsdetails)
- Optional: TypeScript-Strenge-Level (strict, empfohlen, minimal)
- Optional: Ob Pfad-Aliase eingerichtet werden sollen (Standard: ja)
Vorgehensweise
Schritt 1: Tailwind CSS installieren
Tailwind und seine Peer-Dependencies installieren.
npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p
Dies erstellt:
(odertailwind.config.js
für TypeScript-Projekte).tspostcss.config.js
Für TypeScript-Projekte den Konfigurationstyp aktualisieren:
# tailwind.config.js in tailwind.config.ts umbenennen mv tailwind.config.js tailwind.config.ts
Erwartet:
tailwind.config.ts und postcss.config.js in Projektroot erstellt.
Bei Fehler: Wenn
npx tailwindcss fehlschlägt, mit npm install -D tailwindcss@latest die neueste Version sicherstellen.
Schritt 2: Tailwind konfigurieren
tailwind.config.ts bearbeiten, um alle Template-Dateien einzuschließen.
// tailwind.config.ts import type { Config } from 'tailwindcss' const config: Config = { content: [ './src/pages/**/*.{js,ts,jsx,tsx,mdx}', './src/components/**/*.{js,ts,jsx,tsx,mdx}', './src/app/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: { // Eigene Design-Tokens hier hinzufügen colors: { brand: { 50: '#f0f9ff', 500: '#0ea5e9', 900: '#0c4a6e', }, }, }, }, plugins: [], } export default config
Erwartet:
content-Array enthält alle Quell-Dateipfade. TypeScript erkennt Konfigurationstypen ohne Fehler.
Bei Fehler: Wenn Klassen nicht angewendet werden, überprüfen, dass
content-Pfade mit der tatsächlichen Dateistruktur übereinstimmen. npx tailwindcss --content './src/**/*.tsx' --output /dev/null zum Testen verwenden.
Schritt 3: Tailwind-Direktiven zu CSS hinzufügen
Die Tailwind-Schicht-Direktiven in die globale CSS-Datei einfügen.
/* src/app/globals.css oder src/styles/globals.css */ @tailwind base; @tailwind components; @tailwind utilities; /* Eigene Basis-Styles darunter */ @layer base { h1 { @apply text-2xl font-bold; } } @layer components { .btn-primary { @apply px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600; } }
Erwartet: CSS-Datei hat alle drei
@tailwind-Direktiven. Benutzerdefinierte Layer-Definitionen kompilieren ohne Fehler.
Bei Fehler: Wenn
@tailwind-Direktiven nicht erkannt werden, sicherstellen, dass PostCSS korrekt konfiguriert ist und tailwindcss im plugins-Array in postcss.config.js steht.
Schritt 4: TypeScript konfigurieren
tsconfig.json mit geeigneten Strenge-Einstellungen und Pfad-Aliasen einrichten.
{ "compilerOptions": { "target": "ES2017", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, "strict": true, "noEmit": true, "esModuleInterop": true, "module": "esnext", "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve", "incremental": true, "plugins": [ { "name": "next" } ], "paths": { "@/*": ["./src/*"], "@/components/*": ["./src/components/*"], "@/lib/*": ["./src/lib/*"], "@/types/*": ["./src/types/*"] } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] }
Erwartet:
tsconfig.json wird von TypeScript ohne Fehler geladen. Pfad-Aliase lösen korrekt auf.
Bei Fehler: Wenn
moduleResolution: "bundler" Fehler verursacht (benötigt TypeScript 5.0+), auf "node16" oder "node" zurückfallen.
Schritt 5: VS Code-Integration einrichten
.vscode/settings.json für Tailwind CSS IntelliSense und TypeScript-Unterstützung konfigurieren.
{ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, "tailwindCSS.experimental.classRegex": [ ["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"], ["cx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"] ], "typescript.tsdk": "node_modules/typescript/lib", "typescript.enablePromptUseWorkspaceTsdk": true }
Empfohlene VS Code-Erweiterungen (
.vscode/extensions.json):
{ "recommendations": [ "bradlc.vscode-tailwindcss", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "ms-vscode.vscode-typescript-next" ] }
Erwartet: Tailwind IntelliSense zeigt Klassen-Vervollständigung in TypeScript-Dateien. TypeScript-Fehler erscheinen inline.
Bei Fehler: Wenn IntelliSense fehlt, sicherstellen, dass die Tailwind CSS IntelliSense-Erweiterung installiert ist und
tailwindCSS.experimental.classRegex korrekt konfiguriert ist.
Schritt 6: Konfiguration verifizieren
Prüfen, ob Tailwind und TypeScript korrekt zusammenarbeiten.
# TypeScript-Kompilierung ohne Ausgabe prüfen npx tsc --noEmit # CSS auf Tailwind-Klassen testen echo '<div class="bg-blue-500 text-white p-4">Test</div>' > /tmp/test.html npx tailwindcss -i ./src/app/globals.css -o /tmp/output.css --content '/tmp/test.html' grep "bg-blue-500" /tmp/output.css
Erwartet:
tsc --noEmit meldet 0 Fehler. Tailwind-Output-CSS enthält bg-blue-500-Klasse.
Bei Fehler: TypeScript-Fehler identifizieren, indem
tsc --noEmit 2>&1 | head -20 ausgeführt wird. Wenn Tailwind-Klassen fehlen, Pfade im content-Array von tailwind.config.ts überprüfen.
Validierung
-
mit korrektentailwind.config.ts
-Pfaden vorhandencontent -
mit Tailwind CSS-Plugin vorhandenpostcss.config.js - Globale CSS-Datei hat alle drei
-Direktiven@tailwind -
mittsconfig.json
und Pfad-Aliasen konfiguriertstrict: true -
meldet keine Fehlertsc --noEmit - Tailwind-Klassen erscheinen in kompiliertem CSS
- VS Code IntelliSense funktioniert für Tailwind-Klassen
Haeufige Stolperfallen
- Fehlende
-Pfade: Wenn Tailwind-Klassen nicht in der Ausgabe erscheinen, liegt es fast immer daran, dass die Dateipfade nicht mit demcontent
-Array übereinstimmen. Alle Dateiextensionen und Verzeichnisse explizit auflisten.content - PostCSS-Reihenfolge: In
musspostcss.config.js
vortailwindcss
erscheinen.autoprefixer - TypeScript
ohne baseUrl: Bei Verwendung vonpaths
entwederpaths
setzen oder sicherstellen, dass das Bundler-Modul-Auflösung unterstützt.baseUrl
-Direktiven vs Imports:@tailwind
funktioniert auch, aber@import 'tailwindcss/...'
ist idiomatischer in Tailwind v3.@tailwind base/components/utilities- Klassen-Übersteuerung in
: Benutzerdefinierte Klassen im@layer
können von Utilities mit demselben Namen nicht überschrieben werden — Utility-Klassen haben immer höhere Spezifität.@layer components - TypeScript
nach der Einführung: Das nachträgliche Aktivieren vonstrict
erzeugt oft Hunderte von Fehlern. Schrittweise mitstrict: true
,exactOptionalPropertyTypes
usw. aktivieren.noUncheckedIndexedAccess
Verwandte Skills
— neues Next.js-Projekt mit Tailwind + TypeScript erstellenscaffold-nextjs-app
— Tailwind + TypeScript-App auf Vercel deployendeploy-to-vercel