【问题标题】:Get Gulp pipes of dependencies获取 Gulp 依赖管道
【发布时间】:2015-09-16 13:04:10
【问题描述】:

我有一个包含一些任务的 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'));

【问题讨论】:

  • 您需要更改所有任务以仅处理更改的文件
  • 这两个任务 css 和 js 仅适用于更新的文件。但是我如何让其他任务只对更改的文件起作用?
  • 在你的代码中看不到其他任务

标签: gulp gulp-newer


【解决方案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'))
});

【讨论】:

    猜你喜欢
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多