获取Gulp管道的依赖项

时间:2015-09-16 13:04:11

标签: gulp gulp-newer

我有一个包含一些任务的gulpfile。所有任务都组合在一个默认任务中,该任务依赖于所有其他任务。我想添加一个部署任务。部署可以获取文件列表。我只想部署更改的文件。

有没有办法获取所有依赖项的管道?或者任何其他方式,没有将所有内容合并到一个任务中?

这里有一个简单的例子来解释:

var gulp = require('gulp');
var concat = require('gulp-concat');
var debug = require('gulp-debug');
var newer = require('gulp-newer');

gulp.task('default', ['js', 'css']);

gulp.task('js', function () {
    return gulp.src('./app/**/*.js')
        .pipe(newer('./dist/app.js'))
        .pipe(concat('app.js'))
        .pipe(gulp.dest('./dist/'));
});

gulp.task('css', function () {
    gulp.src('./app/**/*.css')
        .pipe(newer('./dist/style.css'))
        .pipe(concat('style.css'))
        .pipe(gulp.dest('./dist/'));
});

gulp.task('deploy', ['default'], function () {
    gulp.src('./dist/*')
    // Here I want only files changed in dist
        .pipe(debug());
});

更新

这里有一些我的任务:

gulp.task('default', ['js', 'css', 'images', 'templates']);

gulp.task('images', function () {
    return gulp.src('./app/images/*')
        .pipe(newer('./dist/app/images'))
        .pipe(gulp.dest('./dist/app/images'));

gulp.task('templates', function () {
    return gulp.src('./app/**/*.html')
        .pipe(newer('./dist/app/templates.js'))
        .pipe(minifyHTML({ empty: true }))
        .pipe(templateCache({ module: 'app' }))
        .pipe(uglify())
        .pipe(gulp.dest('./dist/app'));

1 个答案:

答案 0 :(得分:1)

我添加了一个已部署的文件夹,用于跟踪已部署的所有文件。

var gulp = require('gulp');
var concat = require('gulp-concat');
var debug = require('gulp-debug');
var newer = require('gulp-newer');

gulp.task('default', ['js', 'css']);

gulp.task('js', function () {
    return gulp.src('./app/**/*.js')
        .pipe(newer('./dist/app.js'))
        .pipe(concat('app.js'))
        .pipe(gulp.dest('./dist/'));
});

gulp.task('css', function () {
    gulp.src('./app/**/*.css')
        .pipe(newer('./dist/style.css'))
        .pipe(concat('style.css'))
        .pipe(gulp.dest('./dist/'));
});

gulp.task('deploy', ['default'], function () {
    gulp.src('./dist/*')
        .pipe(newer('./deployed'))
        .pipe(debug())
        .pipe(gulp.dest('./deployed'))
});