【发布时间】: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
标签: wordpress webpack wordpress-theming tailwind-css laravel-mix