NextJS15.2+Tailwind4.0.9中flattenColorPalette非函数错误求助
NextJS 15.2 + React 19 + Tailwind 4.0.9 中「TypeError: flattenColorPalette is not a function」错误求助
我在使用NextJS 15.2、React 19和Tailwind 4.0.9的项目中遇到TypeError: flattenColorPalette is not a function错误。此前参考网上相关案例,在tailwind.d.ts文件中添加了类型定义,但问题仍未解决。以下是我的配置文件代码:
tailwind.config.ts 文件
import type { Config } from 'tailwindcss'; const { default: flattenColorPalette, // eslint-disable-next-line @typescript-eslint/no-require-imports } = require('tailwindcss/lib/util/flattenColorPalette'); export default { darkMode: 'class', content: [ './pages/**/*.{js,ts,jsx,tsx,mdx}', './components/**/*.{js,ts,jsx,tsx,mdx}', './app/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: { colors: { background: 'hsl(var(--background))', foreground: 'hsl(var(--foreground))', card: { DEFAULT: 'hsl(var(--card))', foreground: 'hsl(var(--card-foreground))', }, popover: { DEFAULT: 'hsl(var(--popover))', foreground: 'hsl(var(--popover-foreground))', }, primary: { DEFAULT: 'hsl(var(--primary))', foreground: 'hsl(var(--primary-foreground))', }, secondary: { DEFAULT: 'hsl(var(--secondary))', foreground: 'hsl(var(--secondary-foreground))', }, muted: { DEFAULT: 'hsl(var(--muted))', foreground: 'hsl(var(--muted-foreground))', }, accent: { DEFAULT: 'hsl(var(--accent))', foreground: 'hsl(var(--accent-foreground))', }, destructive: { DEFAULT: 'hsl(var(--destructive))', foreground: 'hsl(var(--destructive-foreground))', }, border: 'hsl(var(--border))', input: 'hsl(var(--input))', ring: 'hsl(var(--ring))', chart: { '1': 'hsl(var(--chart-1))', '2': 'hsl(var(--chart-2))', '3': 'hsl(var(--chart-3))', '4': 'hsl(var(--chart-4))', '5': 'hsl(var(--chart-5))', }, sidebar: { DEFAULT: 'hsl(var(--sidebar-background))', foreground: 'hsl(var(--sidebar-foreground))', primary: 'hsl(var(--sidebar-primary))', 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))', accent: 'hsl(var(--sidebar-accent))', 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))', border: 'hsl(var(--sidebar-border))', ring: 'hsl(var(--sidebar-ring))', }, }, borderRadius: { lg: 'var(--radius)', md: 'calc(var(--radius) - 2px)', sm: 'calc(var(--radius) - 4px)', }, fontFamily: { sans: ['var(--font-poppins)', 'sans-serif'], }, animation: { aurora: 'aurora 60s linear infinite', marquee: 'marquee var(--duration) infinite linear', 'marquee-vertical': 'marquee-vertical var(--duration) linear infinite', 'accordion-down': 'accordion-down 0.2s ease-out', 'accordion-up': 'accordion-up 0.2s ease-out', }, keyframes: { aurora: { from: { backgroundPosition: '50% 50%, 50% 50%', }, to: { backgroundPosition: '350% 50%, 350% 50%', }, }, marquee: { from: { transform: 'translateX(0)', }, to: { transform: 'translateX(calc(-100% - var(--gap)))', }, }, 'marquee-vertical': { from: { transform: 'translateY(0)', }, to: { transform: 'translateY(calc(-100% - var(--gap)))', }, }, 'accordion-down': { from: { height: '0', }, to: { height: 'var(--radix-accordion-content-height)', }, }, 'accordion-up': { from: { height: 'var(--radix-accordion-content-height)', }, to: { height: '0', }, }, }, }, }, // eslint-disable-next-line @typescript-eslint/no-require-imports plugins: [require('tailwindcss-animate'), addVariablesForColors], } satisfies Config; // eslint-disable-next-line @typescript-eslint/no-explicit-any function addVariablesForColors({ addBase, theme }: any) { const allColors = flattenColorPalette(theme('colors')); const newVariables = Object.fromEntries( Object.entries(allColors).map(([key, value]) => [`--${key}`, value]), ); addBase({ ':root': newVariables, }); }
tailwind.d.ts 文件
declare module "tailwindcss/lib/util/flattenColorPalette" { export default function flattenColorPalette( pallette: Record<string, string>, ): Record<string, string>; }
内容的提问来源于stack exchange,提问作者Skyami
相关产品推荐
相关产品推荐

