tailwind.config.js 清除选项无法识别 PHP 文件并导致无限重新编译
tailwind.config.js purge option doesn't recognise PHP files and causes infinite recompiling
我正在使用 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 文件
因此,令人恼火的是,似乎没有解决此问题的简单方法。正如我自己和 Amar 强调的那样,如果您在清除数组中明确设置文件的名称,则可以解决这个问题 - 但这不是最佳解决方案,尤其是当您的实现有很多文件要检查时。
我做了一些额外的挖掘,如果你想在 WordPress 上使用它,我真的建议从 Roots Sage or MountainBreeze on a Roots Bedrock 安装开始。
我个人觉得 Sage 有点过于臃肿,对于我构建的大多数网站来说都有不必要的功能,所以我 运行 Bedrock 和 MountainBreeze - 到目前为止非常好的组合!
我正在使用 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 文件
因此,令人恼火的是,似乎没有解决此问题的简单方法。正如我自己和 Amar 强调的那样,如果您在清除数组中明确设置文件的名称,则可以解决这个问题 - 但这不是最佳解决方案,尤其是当您的实现有很多文件要检查时。
我做了一些额外的挖掘,如果你想在 WordPress 上使用它,我真的建议从 Roots Sage or MountainBreeze on a Roots Bedrock 安装开始。
我个人觉得 Sage 有点过于臃肿,对于我构建的大多数网站来说都有不必要的功能,所以我 运行 Bedrock 和 MountainBreeze - 到目前为止非常好的组合!