gpt4 book ai didi

javascript - 缩小 HTML,但不要用 Gulp 接触 PHP

转载 作者:太空狗 更新时间:2023-10-29 14:57:11 29 4
gpt4 key购买 nike

问题

我有很多 .php 文件,大部分包含 HTML,但顶部还有一些 PHP 行(例如表单触发代码或类似代码)。所以他们看起来像

<?php
if($someValue){
//doSth
}
//more content
?>
<!DOCTYPE html>
<html lang="de">
<head>
<title>My Website</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
<!-- Content and scripts here -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</body>
</html>

目标

我的目标是缩小 HTML(甚至可能是内联 javascript,但这只是额外的一点),而不触及顶部的 PHP。我正在使用 Gulp 作为自动构建工具,并希望看到使用此工具的解决方案以及任何需要的额外包。

最佳答案

gulp-htmlmin模块使用 html-minifier模块,它有很多可供使用的选项(显示在它的 npmjs.com 和 github 页面上)。我们将关注的选项是 ignoreCustomFragments .

var gulp = require(gulp),
htmlmin = require(gulp-htmlmin);

gulp.task('htmltask', function(){
return gulp.src(['./dev/*.html','./dev/*.php'])
.pipe(htmlmin({
collapseWhitespace: true,
ignoreCustomFragments: [ /<%[\s\S]*?%>/, /<\?[=|php]?[\s\S]*?\?>/ ]
}))
.pipe(gulp.dest('./site'));
});

在上面的代码中,您看到我们使用了 ignoreCustomFragments使用正则表达式 /<\?[=|php]?[\s\S]*?\?>/忽略以 <? 开头的代码和 <?php并以 ?> 结尾.

默认情况下,html-minifier 会忽略 php,因此您不必担心设置 ignoreCustomFragments .

编辑谢谢 amersk

您使用的一些 php 文件可能没有结束标签,例如许多 WordPress 文件没有。另一种方法是改用以下内容:

ignoreCustomFragments: [/<\?[\s\S]*?(?:\?>|$)/]

关于javascript - 缩小 HTML,但不要用 Gulp 接触 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40090247/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com