簡體   English   中英

Gulp不會將結果寫入文件

[英]Gulp doesn't write result to file

我有一個看起來像這樣的gulpfile.js

var gulp = require('gulp'),
concat = require('gulp-concat'),
less = require('gulp-less'),
minifyCSS = require('gulp-minify-css'),
uglify = require('gulp-uglify'),
autoprefixer = require('gulp-autoprefixer');

gulp.task('less', function () {
    gulp.src(['less/*.less'])
        .pipe(less())
        .pipe(concat('everything.css'))
        .pipe(autoprefixer())
        .pipe(minifyCSS())
        .pipe(gulp.dest('asset/'));
});

gulp.task('js', function () {
    gulp.src(['javascript/*.js'])
        .pipe(concat('everything.js'))
        .pipe(uglify())
        .pipe(gulp.dest('asset/'));
});

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

在我開發過程中,較少的任務停止了突然的工作。 控制台不會引發任何錯誤,一切看起來都應該看起來一樣,但是everything.css文件不會得到更新。 我什至刪除了該文件,並且不再創建它。

我對正在發生的事情一無所知,甚至重新啟動了計算機以進行健全性檢查,但這無濟於事。

編輯:所以顯然這是less管道。 但是為什么它突然開始失敗了?

為簡化起見,請嘗試少更新一些文件。 這是一種常見的設計模式,對我來說效果很好:

/*main.less*/
@import "somefile.less"
@import "some/deep/nested/file.less"

在其他較少的文件中,這些文件將是您保留實際less代碼的位置。

然后,在您的gulpfile.js您將需要進行一些修改:

...
gulp.task('less', function () {
    gulp.src(['less/main.less']) //only pull in your main.less file
        .pipe(less())
        .pipe(autoprefixer())
        .pipe(minifyCSS())
        .pipe(gulp.dest('asset/'));
});
...

gulp.task('watch', function() {
    gulp.watch('javascript/*.js', ['js']);
    gulp.watch('less/*.less', ['less']); //this remains the same - you want to watch for all changes
});

注意: gulp.watch不會找到新文件-擁有新文件或使用gulp-watch類的文件時,您需要重新啟動。

這將為您解決各種頭痛問題。 希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM