禁用(grunt contrib-)htmlmin中的标记完成



我有一个相当典型的PHP项目,其中页面的页眉/页脚部分被重用,因此被放置在单独的文件中,我只是从主文件中require

然而,这意味着我的_header.php-文件以一个打开的<article>标记结束(然后在_footer.php的开头"关闭")。

问题是htmlmin将此解释为我的错误,并在_header.php中添加了关闭的articlebodyhtml标记。我该如何"禁用"它?我读过grunt contrib htmlminhtml minifier的GitHub页面,运气不太好。

我的任务配置

htmlmin: {                                      
    dist: {                                     
        options: {   
            minifyJS: true,
            removeComments: true,
            collapseWhitespace: true
        },
        files: {                                
            'staging/index.php': 'index.php',
            'staging/support/index.php': 'support/index.php',
            'staging/inc/_header.php': 'inc/_header.php',
            'staging/inc/_footer.php': 'inc/_footer.php'
        }
    }
}

如果你也能告诉我为什么minifyJS: true似乎被忽略了,可以获得额外的布朗尼积分

谢谢。

我知道有一个解决方案并不理想,那就是通过将标记包装在中来使用忽略注释

<!-- htmlmin:ignore -->

https://github.com/kangax/html-minifier#ignoring-标记块

或者你可以使用一个不同的工具,比如HTMLClean:

https://www.npmjs.com/package/grunt-htmlclean

我搜索了一个解决方案,查看了文档,阅读了几篇博客文章,发现此时您所问的是不可能

此外,有人在GitHub上问了一个类似的问题,支持html片段,但最终以结束

嗯,我认为我们对此无能为力,因为minimier确实需要有上下文意识,无法理解如何处理任意的、部分的html块。

因此,这是不可能的,而且(可能)将来也不会实现

您不能阻止该进程(使用grunt contrib htmlmin),因为它们的目的是专门防止用户留下"不正确的代码"。

我没有找到任何其他等效的grunt插件给你这种可能性。

最后,我认为你只剩下两个"解决方案":

1) 不缩小php片段;

2) 将代码分成更多的部分,只缩小没有未关闭标记的部分,并在新的php文件中使用grunt-includ-replace或类似的插件将它们重新组合。

我遇到了同样的问题,并使用htmlmin:ignoreincludeAutoGeneratedTags 组合进行了修复

grunt.js

htmlmin: {
    dist: {
      options: {
          removeComments: true,
          includeAutoGeneratedTags: false,
          collapseWhitespace: true,
          conservativeCollapse: true, 
   },
   files: [
        { src: ['<%= meta.deployPath %>/includes/footer.php'], dest: '<%= meta.deployPath %>/includes/footer.php', nonull: true},
      ]
     }
    },

footer.php

<!-- htmlmin:ignore --></div><!-- htmlmin:ignore -->
<footer id="page-footer" role="contentinfo">
...

相关内容

  • 没有找到相关文章

最新更新