Gulp:转换index.html

时间:2017-07-08 09:51:28

标签: javascript gulp gulp-html-replace

我正在尝试转换java脚本扩展名' .js'到' .js.gz'。为此,我选择了gulp-html-replace模块。但我无法得到理想的结果。对于下面的示例,我使用两个脚本,但我有更多。

index.html(之前):

<!-- build:js -->
    <script src="routing_components/app-routing/app-routing.component.js"></script>
    <script src="routing_components/home-routing/home-routing.component.js"></script>
<!-- endbuild -->

index.html(在gulp index.html之后应该是这样的):

<script src="routing_components/app-routing/app-routing.component.js.gz"></script>
<script src="routing_components/home-routing/home-routing.component.js.gz"></script>

但是我在运行gulp任务后得到了这个

<script src="index.js.gz"></script>

Gulp任务:

gulp.task('index_gzip', function () {
    gulp.src('app/index.html')
        .pipe(htmlreplace({
            js: {
                src: null,
                tpl: '<script src="%f.js.gz"></script>'
            }
        }))
        .pipe(gulp.dest(function (file) {
            return file.base;
        }))
});

如果有人知道更好的模块用于此类任务,请推荐。请帮助纠正我的gulp任务

1 个答案:

答案 0 :(得分:0)

试试这个插件gulp-replace。但我不知道为什么正则表达式分组不正常。

var replace = require('gulp-replace');
gulp.task('index_gzip', function () {
    gulp.src('app/index.html')
        .pipe(replace(/(<script.*?src=\")(.*?).js\"/g, '$1$2.js.gz"'))
        .pipe(gulp.dest(function (file) {
            return file.base;
        }))
});