ファイルが変更された場合にのみ実行されるようにGulp-Lessを取得できません
質問
毎回すべてを処理しないようにGulp-Lessを取得できません。私は試しました:
- GULP の私のバージョンを更新する
- GULP変更を使って
- GULP-NEWERを使用する
GULP-NGMINで動作しますが、GULP-LESS
ではありません。だからこのプロセスtest.jsを変更した場合にのみtest.js:
var SRC = 'test.js';
var DEST = 'dist';
gulp.task('test', function () {
return gulp.src(SRC)
.pipe(changed(DEST))
// ngmin will only get the files that
// changed since the last time it was run
.pipe(ngmin())
.pipe(gulp.dest(DEST));
});
.
しかし私がこのタスクを実行するたびに、それはより少ない
を計算しますここで何が悪いの?
var SRC = 'test.less';
var DEST = 'dist';
gulp.task('test', function () {
return gulp.src(SRC)
.pipe(changed(DEST))
.pipe(less({
paths: [path.join(__dirname, 'less', 'includes')]
}))
.pipe(gulp.dest(DEST));
});
.解決
実際にNikitaの声明は偽りです、それは仕事をしてそれが目的で、あなたが正しくそれを設定していることを確認してください。私の場合私はこれを持っています:
var gulp = require('gulp');
var less = require('gulp-less');
var changed = require('gulp-changed');
gulp.task('less', function ()
{
gulp.src('./src/less/pages/*.less')
.pipe(changed( 'outputDir/css', {extension: '.css'}))
.pipe(less({
paths: [ './src/less/' ]
}))
.pipe(gulp.dest( 'outputDir/css') );
});
.
My gulp.src
は、メインのほどのファイル(他のファイルをインポートするファイル)を持つフォルダを指しており、それらすべてを宛先フォルダにコンパイルしたいです。
.pipe(changed())
.pipe(gulp.dest())
と同じターゲットを持つ必要があります。
{extension: '.css'}
の迅速化(pipe(changed())
)にするために比較する拡張子を指定できます。
おそらくあなたはpaths: [path.join(__dirname, 'less', 'includes')]
を2回再確認する必要があります。私の場合は、私のすべてのファイルのルートフォルダをそこに置いたばかりです。私の少ないファイルのいくつかはsrc/less/globals
などのsrc/less/common
にあります。コンパイルしたいファイルはsrc/less/pages
です。そのため、src/less/pages/*.LESS
およびgulp.src()
のsrc/less/
を使用しています。
他のヒント
gulp-less-shown パッケージを使うことができます、
の@import
を考えると、ファイルコンパイル階層が少なくなることが確認されます。
var gulp = require('gulp');
var lessChanged = require('gulp-less-changed');
var rename = require('rename');
var less = require('gulp-less');
var outputPat = "dest";
gulp.task('less', () => {
return gulp.src('src/*.less')
.pipe(lessChanged({
getOutputFileName: file => rename(file, { dirname: outputPath, extname: '.css' })
}))
.pipe(less())
.pipe(gulp.dest(outputPath));
});
. 所属していません StackOverflow