将 grunt 与现有的 wordpress 实例一起使用

Use grunt with an existing wordpress instance

在这种情况下,我正在尝试弄清楚如何缩小和合并 js/css 代码:

我对 grunt 还很陌生,我过去曾在自定义 Web 应用程序中使用过它,但从未在 wordpress 中使用过,我想知道当你有很多 PHP 脚本/插件时它是否有帮助这会注入他们丑陋的代码。

所以我的问题是:有没有办法让 grunt 与 wordpress 一起工作,以便在上述情况下提供生产代码?如果是,怎么做?

恐怕不修改那些插件就无法实现你想要的。

Grunt 只是一个 JavaScript 任务运行程序 - 它没有网络应用程序的意义,无论是 WordPress 还是自定义的东西。您给 Grunt 一些输入,然后告诉它如何处理该输入,它就会执行。因此,为了使用 Grunt 缩小和连接您网站上的所有 JavaScript 和 CSS,您必须从插件中提取它并将其放入适当的文件结构中。

一般来说,当一个插件硬要内联一堆JavaScriptand/orCSS时,它不是一个很好的插件。例如,我的团队使用 gulp.js(类似于 Grunt)进行大量 WordPress 前端开发(连接、缩小、指纹识别、自动前缀等),并且我们非常讲究我们使用哪些插件使用(如果有的话)- 原因之一正是您的问题所在。

查看 FoundationPress-child 主题,它使用 grunt 和一些其他不错的工具和库。我将它用作我为我的客户制作的 WP 网站的基础。这是一个很好的起点,还有 VCCW。

https://github.com/thetrickster/FoundationPress-child

https://github.com/vccw-team/vccw

您可以使用插件使资产出列或手动出列,然后告诉 grunt 连接并缩小它们。

这篇文章可能会给你想要的东西http://css-tricks.com/taking-control-cssjs-wordpress-plugins-load/

你的计划好像有点乱。 在最好的情况下,我们假设您已经配置并使用了一个简单的 Grunt 任务,以缩小您的所有 CSS 和您的 Wordpress 实例使用的 JS。

这意味着您必须深入研究您的代码,找到您的每个插件获取样式或脚本的位置,切断它们并使用 Grunt 缩小它们。之后,您应该使用最终的缩小文件并将其再次注入您的 Wordpress 实例。

除了您必须进行大量自定义编码之外,更新您的插件会给您带来很多痛苦。

为了坚持可扩展且易于遵循的计划,我建议使用 BWP minify plugin 来处理您的样式和脚本,它提供 CDN 支持。

然后您可以使用 Grunt 作为代码质量检查机制。 Uncss is a great tool helping you find unused styles. Grunt-usemin 也是一个很好的解决方案。

最后,我看到您愿意转向命令行工具,我强烈建议您看一看 WP-CLI 它是 Wordpress 的绝佳命令行界面。

如果您愿意花费必要的时间将您的 JS 分成模块,那么 grunt-browserify 可能在长期 运行 中适合您。但是,如前所述,这需要从您的插件文件中提取相关代码。

对于 CSS 缩小,grunt-contrib-cssmin 值得一看。我也喜欢 g运行t-text-replace 用于在测试或部署之前更改 CSS 中的相对路径(如果您不直接开发,这可能会加重-到 Wordpress).