tailwind.config.js 清除选项无法识别 PHP 文件并导致无限重新编译
Posted
技术标签:
【中文标题】tailwind.config.js 清除选项无法识别 PHP 文件并导致无限重新编译【英文标题】:tailwind.config.js purge option doesn't recognise PHP files and causes infinite recompiling 【发布时间】:2021-11-13 11:35:51 【问题描述】:我正在使用 Tailwind 构建自定义 WordPress 主题并使用 Laravel Mix 6 编译资产。
在我的tailwind.config.js
文件中,我有以下purge
配置:
purge:
enabled: true,
content: [
'./assets/**/*..js|.scss',
// './*.php',
// './*/*.php',
// './*/*/*.php',
],
safelist: [
// list any Tailwind classes which should never be purged, for example classes added via WordPress which are stored in the database
// 'classname',
],
,
现在,我的第一行代码绝对完美。它在我的assets
文件夹或子文件夹中查找任何.scss
或.js
文件,并在更改时进行编译。但是,如果我取消注释任何 .php
行,即使我没有进行更改,Laravel Mix 也会在终端中不断重新编译 - 这完全是无穷无尽的。
我已将问题缩小到这些行,如果没有添加它们,它工作正常,但我需要添加它们以便 TailWind 知道正在使用哪些类。
我的webpack.mix.js
也供参考:
const mix = require("laravel-mix");
mix.js("assets/js/main.js", "build/scripts.js")
.sass("assets/scss/main.scss", "build")
.sourceMaps()
.browserSync("wordpressthemedev.local")
.options(
processCssUrls: false,
postCss: [
require("postcss-import"),
require("tailwindcss"),
require("postcss-nested"),
require("autoprefixer"),
],
);
另外,如果我这样做:
purge:
enabled: true,
content: [
'./assets/**/*..js|.scss',
'./parts/**/*.php',
'./functions/**/*.php',
'./404.php',
'./footer.php',
'./functions.php',
'./header.php',
'./index.php',
'./page.php',
'./search.php',
'./single.php',
// './*/*/*.php',
],
safelist: [
// list any Tailwind classes which should never be purged, for example classes added via WordPress which are stored in the database
// 'classname',
],
,
Mix 不会永远编译并且运行良好,但如果可能的话,我宁愿避免在根级别声明每个 PHP 文件
【问题讨论】:
祝你好运。在构建 Wordpress 主题时我也面临同样的问题 嘿@AmarUbhe - 我还没有找到解决方案,但我正在积极解决它。如果您找到任何信息,请告诉我:) 主要问题是 composer vendor 文件夹和 node_modules,因为你告诉它查找每个 .php 文件,它必须遍历每个可用文件夹,并且 node_modules + vendor 可能会变得非常大,如果你能找到一个忽略这些文件夹的方法会缩短编译时间 @Buttered_Toast 谢谢,编译时间不是问题,事实上它不断在使用watch
时重新生成资产
这就是 watch 的用途,如果你想编译一次你可以使用 dev
或 prod
【参考方案1】:
因此,令人烦恼的是,似乎没有一个简单的方法可以解决这个问题。正如 Myself 和 Amar 强调的那样,如果您在 purge 数组中明确设置文件的名称,您可以解决这个问题 - 但这不是最佳解决方案,特别是如果您的实现有很多文件要检查。
我做了一些额外的挖掘,如果您想在 WordPress 中使用它,我真的建议您在安装 Roots Bedrock 时从 Roots Sage 或 MountainBreeze 开始。
我个人觉得 Sage 对于我构建的大多数网站来说都有些多余的功能,所以我正在使用 Bedrock 和 MountainBreeze - 到目前为止,这是一个非常好的组合!
【讨论】:
以上是关于tailwind.config.js 清除选项无法识别 PHP 文件并导致无限重新编译的主要内容,如果未能解决你的问题,请参考以下文章
在 Vite2 中,如何在 tailwind.config.js 中导入 ESModule
Tailwind CSS 扩展了 tailwind.config.js 中的标准颜色。当我尝试扩展颜色时,所有其他颜色都被删除
如何在 Gatsby 主题中处理 tailwind.config.js
tailwindcss 官网定制:配置( `tailwind.config.js `-pimportant核心插件`resolveConfig`)主题 `theme` 配置