将 grunt 与现有的 wordpress 实例一起使用
Use grunt with an existing wordpress instance
在这种情况下,我试图弄清楚如何缩小和组合 js/css 代码:
- 我购买了一个主题,但没有开发它
- 我正在使用几个插件。它们很有用,但它们输出了一些非常丑陋的代码(很多内联CSS和js,主要是带有完整注释的开发代码)
咕噜相当陌生,我过去曾在自定义 Web 应用程序中使用它,但从未在 wordpress 中使用过,我想知道当您有很多 PHP 脚本/插入注入其丑陋代码时,它是否有帮助。
所以我的问题是:有没有办法让 grunt 与 wordpress 一起工作,以便在上述情况下提供生产代码?如果是这样,如何?
怕如果不修改这些插件,就无法实现您正在寻找的内容。
Grunt 只是一个 JavaScript 任务运行程序 - 它没有 Web 应用程序的意义,无论是 WordPress 还是自定义的东西。你给Grunt一些输入,你告诉它如何处理这些输入,它就做到了。因此,为了使用 Grunt 缩小和连接您网站上的所有 JavaScript 和 CSS,您必须从插件中提取它并将其放入适当的文件结构中。
一般来说,当一个插件坚持内联一堆JavaScript和/或CSS时,它不是一个很好的插件。例如,我的团队使用 gulp.js(类似于 Grunt)进行许多 WordPress 前端开发(连接、缩小、指纹识别、自动前缀等),我们非常讲究我们使用哪些插件(如果有的话)——其中一个原因正是你的问题。
你的计划似乎有点混乱。在最好的情况下,假设您已经配置并使用了一个简单的Grunt任务,以便缩小WordPress实例使用的所有CSS和JS。
这意味着你必须挖掘你的代码,找到你的每个插件获取样式或脚本的位置,切断它们并使用Grunt缩小它们。之后,您应该拿起最终缩小的文件并将其再次注入您的 Wordpress 实例。
除了您必须进行大量自定义编码之外,更新插件还会给您带来很多痛苦。
为了坚持可扩展且易于遵循的计划,我建议使用 BWP minify 插件,它将照顾您的样式和脚本,它提供 CDN 支持。
然后,您可以使用 Grunt 作为代码质量检查机制。Uncss 是一个很棒的工具,可帮助您查找未使用的样式。Grunt-usemin也是一个很好的解决方案。
最后,当我看到你愿意转向命令行工具时,我强烈建议你看看WP-CLI,它是Wordpress的一个很棒的命令行界面。
您可以使用插件将资产取消排队,也可以手动取消排队,然后告诉 grunt 将它们连接并缩小。
本文可能会为您提供所需的内容 http://css-tricks.com/taking-control-cssjs-wordpress-plugins-load/
如果你愿意花必要的时间将你的JS分成模块,那么从长远来看,grunt-browserify可能对你有用。但是,如前所述,这需要从插件文件中提取相关代码。
对于CSS缩小,grunt-contrib-cssmin值得一看。我也喜欢在测试或部署之前更改CSS中的相对路径的grunt-text-replacement(如果你不开发直接到Wordpress,这可能会加剧)。
查看FoundationPress-child主题,它使用grunt和其他一些不错的工具和库。我使用它作为我为我的客户制作的 WP 网站的基础。这是一个很好的起点,还有VCCW。
https://github.com/thetrickster/FoundationPress-child
https://github.com/vccw-team/vccw
- ES6构造函数返回基类的实例
- 转义符不能与innerHTML一起使用
- KnockoutJS-组件-多个实例
- 为什么无法在TypeScript中导出类实例
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- fluxxor向一个flux实例添加一组以上的操作
- 使用jQuery获取Dropzone实例/对象
- 高亮显示与数组字符串一起使用时文本插件中断
- "实例范围”;TypeScript类的getter/setter
- setTimeout可以与闭包内的函数一起使用吗
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- Highcharts colorsByPoint与系列中的线性渐变一起使用时不起作用
- 将 grunt 与现有的 wordpress 实例一起使用
- 如何将Ember.Object实例与 #each 循环一起使用
- 将jquery.on与jquery的两个不同实例一起使用
- jQuery Validate将错误作为单独的实例处理,而不是将它们组合在一起
- 从当前脚本(即thisscript.js?id=1&type=2)的url获取参数,不能与多个实例一起工作
- Javascript绑定与其实例一起工作
- ImmutableJS不能与新的自定义对象实例一起工作
- require (require.js)的多个实例可以很好地一起工作吗?