有没有办法不输出gulp.src文件?我的目标是仅捆绑 javascript 并仅输出 .js,而不是 html。
在 base.html
中,以下 block 用于将 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 中的 block 注释并输出捆绑的 javascript app.core.js
。
有什么建议吗?
最佳答案
要扩展我的评论,您只需使用 gulp-if
来过滤流中的 gulp.dest
。
.pipe(gulpif('*.js', gulp.dest(path.build + 'js')))
关于javascript - gulp userref 从管道中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623794/