gulp useref从管道中删除文件

时间:2016-01-06 00:37:21

标签: javascript node.js gulp

有没有办法不输出gulp.src文件?我的目标是仅捆绑javascript并仅输出.js,而不是html。

base.html中,以下块用于将Javascript与gulp-useref捆绑在一起:

<!-- build:js app.core.js -->
<script src="{{ STATIC_URL }}etherflex/js/vendor/conditionizr_4.5.1.js"></script>
<script src="{{ STATIC_URL }}etherflex/js/app/conditionizr.detects.js"></script>
<script src="{{ STATIC_URL }}etherflex/js/app/conditionizr.config.js"></script>
<script src="{{ STATIC_URL }}etherflex/js/vendor/mootools-core_1.4.5.js"></script>
<!-- endbuild -->

gulp任务

var gulp = require('gulp');
var notify = require('gulp-notify');
var changed = require('gulp-changed');
var plumber = require('gulp-plumber');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var gzip = require('gulp-gzip');
var useref = require('gulp-useref');
var gulpif = require('gulp-if');

module.exports = function (path) {
    return gulp.src('templates/**/*.html')
        .pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")}))
        .pipe(useref({
            searchPath: path.source,
            transformPath: function(filePath) {
                return filePath.replace('{{ STATIC_URL }}/','')
            }
        }))
        .pipe(changed(path.build + 'js'))
        .pipe(gulpif('*.js', uglify()))
        .pipe(rename({
            suffix: ".min",
        }))
        .pipe(gulp.dest(path.build + 'js'))
        .pipe(notify("Javascript concatenated, minified and gzip compressed: <%= file.relative %>"))
        .pipe(gzip())
        .pipe(gulp.dest(path.build + 'js'));
};

目标只是阅读base.html中的阻止评论,然后输出捆绑的javascript app.core.js

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

要扩展我的评论,您只需使用gulp-if过滤gulp.dest的信息流。

.pipe(gulpif('*.js', gulp.dest(path.build + 'js')))