【问题标题】:PurgeCSS and Tailwind CSS, how to preserve responsive classes using the Command Line Interface?PurgeCSS 和 Tailwind CSS,如何使用命令行界面保留响应式类?
【发布时间】:2021-04-09 18:27:27
【问题描述】:

我有“完整的”3.9 MB Tailwind CSS 文件,并成功应用 PurgeCSS 将其缩小到 9 kB。但它也清除了所有响应式类,例如 md:px-6,它们没有出现在我清除的版本中。

注意:这个问题是针对使用命令行界面(CLI)的

这就是我所做的:

purgecss --css ~/Desktop/Projects/Flask/Project1/build/static/css/main.css --content ~/Desktop/Projects/Flask//Project1/build/**/*.html --output ~/Desktop/Projects/Flask/Project2/static/css/main.css

我选择在不同的文件夹 (Project2) 中创建输出文件,以便检查输入与输出。

我尝试过的一件事是添加--safelist [/md/],但没有帮助。事实上,安全列表似乎根本没有被使用...

(我使用 CLI,因为它是更大的 Python Flask 项目的一部分)

【问题讨论】:

  • 我看到我在问题本身中打错了,文件路径中有双斜杠,请忽略。问题仍然存在

标签: node.js command-line-interface tailwind-css css-purge


【解决方案1】:

PurgeCSS 依赖extractors 来获取文件中使用的选择器列表。它提供了一个默认提取器,可以很好地处理各种文件类型,但它可能会受到限制,并且不适合所有的 CSS 框架。

默认提取器将文件的每个单词都视为一个选择器,但它不考虑在 Tailwind CSS 中大量使用的冒号 (:) 等特殊字符。

因此,默认情况下,PurgeCSS 会删除响应式 (md:px-6)、悬停 (hover:bg-gray-500) 等类。为避免这种情况,Tailwind 有其own extractor。您可以使用这个(或您自己的)提取器,但 PurgeCSS CLI 有 limited options 并且缺少 defaultExtractor 选项。

幸运的是,它接受配置文件选项,因此如果您创建自己的 purgecss.config.js 文件并在其中添加默认提取器,它也会保留这些类。您还可以将其他选项添加到此文件中。

我曾经使用过这个简单的提取器,它也对你有用:

(content) => content.match(/[\w-/:]+(?<!:)/g) || []

您的配置文件将如下所示:

// purgecss.config.js
module.exports = {
  content: ['build/**/*.html'],
  css: ['build/static/css/main.css'],
  defaultExtractor: (content) => content.match(/[\w-/:]+(?<!:)/g) || [],
  output: 'static/css/main.css',
};

您可以使用以下命令来运行带有上述配置的 PurgeCSS:

purgecss --config ./purgecss.config.js

【讨论】:

  • 太好了,谢谢!奇迹般有效。我不得不更改 purgecss.config.js 文件中的 output 文件夹,以使一切都在我的特定流程中正常工作,但这是一个小细节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 2021-09-12
  • 2019-10-01
相关资源
最近更新 更多