某些 Tailwind 样式无法在 Next.js 的生产环境中使用

IT技术 javascript css reactjs next.js tailwind-css
2021-05-02 15:40:33

出于某种原因,一些样式在 Netlify 上托管的生产版本中似乎不起作用。这似乎只发生在单个组件上。它是一个位于./layout/FormLayout.tsx(不知道这是否会改变任何东西)的包装器这是包装器:

const FormLayout: React.FC<FormLayout> = ({ children, title, description }) => {
    return (
        <div className="w-screen mt-32 flex flex-col items-center justify-center">
            <div className="p-6 flex flex-col items-center justify-center">
                <h2 className="text-4xl font-semibold text-blue-400">
                    {title}
                </h2>
                {description && (
                    <h6 className="mt-4 text-md font-medium">{description}</h6>
                )}
                <div className="mt-12 w-max">{children}</div>
            </div>
        </div>
    )
}

它在这里使用:

const Register: React.FC<RegisterProps> = () => {
    return (
        <FormLayout title="Register" description="Register with your email.">
            {/* form stuff. styles do work in here */}
        </FormLayout>
    )
}

下面是一些配置文件:

顺风配置:

module.exports = {
    purge: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'],
    darkMode: 'class',
    theme: {
        extend: {},
    },
    variants: {
        extend: {},
    },
    plugins: [],
}

postcss 配置:

module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
}

这是正在发生的事情的图形示例:

在此处输入图片说明

在此处输入图片说明

对于我的构建命令,我使用next build && next export和 Netlify 部署/out目录。

所有代码都在这里通过github

4个回答

对于将来看到这一点的任何人,只需将purge数组中任何新文件夹的路径添加到 tailwind 配置中,如下所示:

module.exports = {
    purge: [
        "./src/**/*.{js,ts,jsx,tsx}",
        // Add more here
    ],
    darkMode: 'class',
    theme: {
        extend: {},
    },
    variants: {
        extend: {},
    },
    plugins: [],
}

2021 年 12 月更新:

在 TailwindCSS v.3 之后,配置文件略有不同。上面的配置是:

module.exports = {
  content: [
    "./src/**/*.{js,ts,jsx,tsx}",
    // Add extra paths here
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}

我遇到过同样的问题。

我改变了这些:

purge: [
    "./pages/**/*.{js,ts,jsx,tsx}",
    "./components/**/*.{js,ts,jsx,tsx}",
  ],

到这些:

purge: ["./pages/**/*.js", "./components/**/*.js"],

就是这样。问题解决了!奇怪的问题

在我的情况下,这是发生因为我不是在给正确的地址purgetailwind.config.css

如果有人遇到不相应地更新 dom 更改的问题。检查导入和文件名是否使用相同的大小写!

标头.js !=标头.js