Tailwind Css 自定义颜色在构建时消失(React JS)

Posted

技术标签:

【中文标题】Tailwind Css 自定义颜色在构建时消失(React JS)【英文标题】:Tailwind Css custom color disappearing on build (React JS) 【发布时间】:2021-10-24 13:32:56 【问题描述】:

我的自定义颜色“主要”在构建模式下不起作用并消失了。但在开发模式下它存在。

tailwind.config.js

module.exports = 
  purge: ["./src/**/*.js,jsx,ts,tsx", "./public/index.html"],
  darkMode: false, // or 'media' or 'class'
  theme: 
    extend: 
      colors: 
        primary: "#C62C2C",
        secondary: "#6558f5",
        dark: "#000000",
      ,
    ,
    fontFamily: 
      body: ["Inter", "sans-serif"],
    ,
  ,
  variants: 
    extend: ,
  ,
  plugins: [],
;

按钮组件

const Button = (props) => 
  return (
    <button
      className=`rounded-lg $props.className ? props.className : "1" $
        props.padding
       text-sm text-white bg-$props.color`
      onClick=props.onClick
    >
      props.children
    </button>
  );
;

调用按钮组件

 <Button color="primary" padding="px-6 py-2"></Button>

【问题讨论】:

您的构建版本中是否存在所有其他样式? 【参考方案1】:

如果您的颜色通过props.color 传递到bg- 以创建bg-primary,那么这就是问题所在。

Tailwind 在生产中的清除功能会查找类的全文并删除它没有找到的类。因为文本是在代码中组装的,所以它在任何地方都找不到bg-primary,也不包括在它构建的 CSS 中。

最简单的解决方案可能是传递完整的类名,而不仅仅是 props.color 中的颜色部分(即 bg-primary 而不仅仅是 primary)。

有关更多信息,请参阅文档:https://v2.tailwindcss.com/docs/optimizing-for-production#writing-purgeable-html

【讨论】:

嗨,如果我们希望颜色是动态的怎么办?我们是否应该在其他地方提及所需的类来欺骗“清除”以忽略它们? 编辑上述评论:它确实有效,但不确定这是一个好习惯。有什么想法吗? 我建议传递完整的类名 - 可能是 props.colorClass - 或使用字典对象(颜色名作为属性,类名作为值,以便您可以查找适当的值) 而不是简单地在别处添加类名。 (为了清晰和易于维护。)

以上是关于Tailwind Css 自定义颜色在构建时消失(React JS)的主要内容,如果未能解决你的问题,请参考以下文章

Tailwind 自定义颜色在 Angular 生产构建中不起作用

NextJS - 无法在 Tailwind CSS 中使用自定义颜色

如何在 React 中使用 Tailwind CSS 转换背景颜色?

无法在 Tailwind 中添加自定义颜色

flask 和 tailwind - 渲染时不使用 master.css 中的更改

Tailwind CSS 自定义颜色应用于文本而不是 ReactJS 中的背景