0

私は、gulp ビルド システムを使用して開発プロセスを自動化する方法に取り組んできました。

スタイルシートの改訂に関して問題があります。gulp-rev を使用して更新リビジョン番号を含むファイルを生成しましたが、ファイル内の変更に対して余分なファイルが作成され続け、結果としてセットアップ サイズが増加します。

gulpfile.js

var gulp = require('gulp');
var watchLess = require('gulp-watch-less');
var less = require('gulp-less');
var plumber = require('gulp-plumber');
var watch = require('gulp-watch');
var rev = require('gulp-rev');
var revReplace = require('gulp-rev-replace');
var cleanCSS = require('gulp-clean-css');
var autoprefixer = require('gulp-autoprefixer');
var revAppend = require('gulp-rev-append');

//LESS
gulp.task('less', function() {
    return gulp.src('assets/less/*.less')
        .pipe(watchLess('assets/less/*.less'))
        .pipe(less())
        .pipe(autoprefixer({
            browsers: ['> 0%'],
            cascade: false
        }))
        .pipe(cleanCSS())
        .pipe(gulp.dest('assets/css/'))
        .pipe(rev())
        .pipe(gulp.dest('assets/css/'))
        .pipe(revAppend())
        .pipe(gulp.dest('assets/css'))
        .pipe(rev.manifest())
        .pipe(gulp.dest('assets/'));
});

//Watch
gulp.task('watch', function(){
    gulp.watch('assets/less/*.less', ['less']);
})

//Default
gulp.task('default', ['watch']);

更新の変更を含む最新のファイルを作成し、ファイルディレクトリから以前のファイルを削除するか、最新の更新/変更を含むファイルでのみ提供されるものを削除するのに助けが必要です。

他のいくつかのリビジョン関連のプラグインも使用しましたが、それを設定する正しい方法が見つかりません

4

1 に答える 1

0

さて、宛先の場所を持つ 4 つのパイプがあります。

.pipe(gulp.dest('assets/css/'))
.pipe(gulp.dest('assets/css/'))
.pipe(gulp.dest('assets/css'))
.pipe(gulp.dest('assets/'));

目的地が同じ3人。異なる段階で、パイプ内のすべてのファイルの 3 つのコピーがあることを期待してください。gulp-rev では、マニフェスト用に追加のパイプが必要ですが、それでも 4 つではなく 2 つ残ります。

試す:

//LESS
gulp.task('less', function() {
    return gulp.src('assets/less/*.less')
        .pipe(watchLess('assets/less/*.less'))
        .pipe(less())
        .pipe(autoprefixer({
            browsers: ['> 0%'],
            cascade: false
        }))
        .pipe(cleanCSS())
        .pipe(rev())
        .pipe(revAppend())
        .pipe(gulp.dest('assets/css'))
        // WARNING!!! Put the manifest after all the file pipes
        .pipe(rev.manifest())
        .pipe(gulp.dest('assets/'));
});

パッケージを改訂し、ファイル改訂の責任をソース管理またはビルドサーバーに任せたい場合の再ビジョンに関する投稿を次に示します。

于 2016-04-04T12:28:21.047 に答える