PurgeCSS和Markdown输出,如何将元素选择器列为白名单?

PurgeCSS和Markdown输出,如何将元素选择器列为白名单?,css,compilation,postcss,purge,Css,Compilation,Postcss,Purge,刚开始使用的时候,我很快就遇到了从样式表中删除大量多余css的需要。PurgeCSS除了通常是一个很好的工具外,还可以成为一个猫捉老鼠的游戏,用于寻找想要的和不想要的选择器,特别是在部署了摇摇欲坠的小型生产代码之后 为了防止PurgeCSS被整理,它有一些可能性:在样式表中直接使用白名单、白名单模式、白名单模式或/*PurgeCSS开始和停止忽略*/ 通常我会通过注释保护选项中的一些选择器regexp和一些完整导入的样式表,请参见下面的示例。但特别是动态创建的选择器,如转换为HTML的标记。所有

刚开始使用的时候,我很快就遇到了从样式表中删除大量多余css的需要。PurgeCSS除了通常是一个很好的工具外,还可以成为一个猫捉老鼠的游戏,用于寻找想要的和不想要的选择器,特别是在部署了摇摇欲坠的小型生产代码之后

为了防止PurgeCSS被整理,它有一些可能性:在样式表中直接使用白名单、白名单模式、白名单模式或/*PurgeCSS开始和停止忽略*/

通常我会通过注释保护选项中的一些选择器regexp和一些完整导入的样式表,请参见下面的示例。但特别是动态创建的选择器,如转换为HTML的标记。所有的,,所以:有没有办法或regexp将所有非类的选择器列为白名单

我尝试了一些用于whitelistPatterns的regexp,比如^?!\…+,^?!\\w+,…,但它们要么不起作用,要么将所有选择器(包括类)列入白名单

谢谢你的帮助

//postss.config.js const白名单=/^ p | ul | ol | h\d+| pre | code | carousel | flickity | spinner/ 常量purgecss=require@fullhuman/邮政清洗{ // … 白名单模式:[白名单], 白名单模式希尔德伦:[白名单] }; //styles.css /*! purgecss开始忽略*/ @导入admin.css; /*! purgecss结束忽略*/
正如前面提到的,默认情况下,Tailwind运行一个相当宽容的清除。保留默认值对我来说是可行的,但是如果我配置了“全部清除模式”,我会完全丢失您描述的样式-因为元素不会出现在我的标记文件中

要解决这个问题,您可以从Tailwind配置文件向PurgeCSS传递一个白名单元素列表

首先,确保您正在使用可选配置文件:

npx tailwindcss init

然后,您可以按如下方式对其进行配置。在这里,我使用更激进的清除,但也白名单的具体元素。下面是一个解析布局的示例:


谢谢从版本>=1.4.0开始,Tailwindcss包括PurgeCSS的实现,如中所述。我认为您关于在tailwind.config.js中使用purge.options.whitelist数组的解释与我在问题中描述的手动purgeCSS设置没有太大区别。我的问题是如何根据元素名将所有CSS选择器列为白名单。
module.exports = {
    // Purge is executed only when NODE_ENV=production
    purge: {
        mode: 'all',
        content: [
            'site/_includes/**/*.njk'
        ],       
        options: {
            whitelist: [
                'body',
                'html',
                'a',
                'h1',
                'h2',
                'h3',
                'h4',
                'p'                
            ]
        }

  },
  theme: {
    extend: {},
  },
  variants: {},
  plugins: [],
}