首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp不使用gulp插件查看文件

Gulp不使用gulp插件查看文件
EN

Stack Overflow用户
提问于 2015-06-19 16:20:10
回答 1查看 806关注 0票数 4

我试图通过使用这个gulpfile.js插件来重建我的食谱中更改的文件。问题是,当我运行默认任务gulp时,它在保存我希望它看到的任何文件后,根本不监视文件。我在gulpfile.js里做错了什么?提前谢谢。

代码语言:javascript
复制
/* ----------------------------------------------------- */
/* Gulpfile.js
/* ----------------------------------------------------- */
'use strict';

// Setup modules/Gulp plugins
var gulp            = require('gulp'),
    del             = require('del'),
    runSequence     = require('run-sequence'),
    less            = require('gulp-less'),
    // minifyCSS        = require('gulp-minify-css'),
    fileinclude     = require('gulp-file-include'),
    order           = require('gulp-order'),
    concat          = require('gulp-concat'),
    uglify          = require('gulp-uglify'),
    sourcemaps      = require('gulp-sourcemaps'),
    imagemin        = require('gulp-imagemin'),
    pngquant        = require('imagemin-pngquant'),
    plumber         = require('gulp-plumber'),
    watch           = require('gulp-watch'),
    // browserify   = require('browserify'),
    // sourceStream = require('vinyl-source-stream'),
    connect         = require('gulp-connect');

// Configure file paths
var path = {
    DEST: 'dist/',
    SRC: 'src/',
    INCLUDES: 'include/',
    LESS_SRC: 'src/frontend/less/',
    LESS_MANIFEST: 'src/frontend/less/all.less',
    CSS_DEST: 'dist/frontend/css/',
    JS_SRC: 'src/frontend/js/',
    JS_MINIFIED_OUT: 'all.js',
    JS_DEST: 'dist/frontend/js',
    IMG_SRC: 'src/frontend/img/',
    IMG_DEST: 'dist/frontend/img/',
};

// Clean out build folder each time Gulp runs
gulp.task('clean', function (cb) {
    del([
        path.DEST
    ], cb);
});

// Compile LESS
gulp.task('less', function(){
    return gulp.src(path.LESS_MANIFEST)
        .pipe(watch(path.LESS_MANIFEST))
        .pipe(plumber({
            handleError: function (err) {
                console.log(err);
                this.emit('end');
            }
        }))
        .pipe(sourcemaps.init())
        .pipe(less())
        .pipe(sourcemaps.write('./'))
        .pipe(gulp.dest(path.CSS_DEST))
        .pipe(connect.reload());
});

// Allow HTML files to be included
gulp.task('html', function() {
    return gulp.src([path.SRC + '*.html'])
        .pipe(watch(path.SRC + '*.html'))
        .pipe(plumber({
            handleError: function (err) {
                console.log(err);
                this.emit('end');
            }
        }))
        .pipe(fileinclude({
            prefix: '@@',
            basepath: path.INCLUDES
        }))
        .pipe(gulp.dest(path.DEST))
        .pipe(connect.reload());
});

// Concatenate and minify JavaScript
gulp.task('js', function() {
    return gulp.src(path.JS_SRC + '**/*.js')
        .pipe(watch(path.JS_SRC + '**/*.js'))
        .pipe(order([
            path.JS_SRC + 'framework/*.js',
            path.JS_SRC + 'vendor/*.js',
            path.JS_SRC + 'client/*.js'
        ], {base: '.'} ))
        .pipe(concat(path.JS_MINIFIED_OUT))
        .pipe(uglify())
        .pipe(gulp.dest(path.JS_DEST))
        .pipe(connect.reload());
});

// Minify images
gulp.task('imagemin', function () {
    return gulp.src(path.IMG_SRC + '**/*')
        .pipe(imagemin({
            progressive: true,
            use: [pngquant()]
        }))
        .pipe(gulp.dest(path.IMG_DEST));
});

// Copy folders
gulp.task('copy', function() {
    gulp.src(path.SRC + 'extjs/**/*')
        .pipe(gulp.dest(path.DEST + 'extjs/'));
    // Copy all Bower components to build folder
    gulp.src('bower_components/**/*')
        .pipe(gulp.dest('dist/bower_components/'));
});

// Connect to a server and livereload pages
gulp.task('connect', function() {
    connect.server({
        root: path.DEST,
        livereload: true
    });
});

// Organize build tasks into one task
gulp.task('build', ['less', 'html', 'js', 'imagemin', 'copy']);
// Organize server tasks into one task
gulp.task('server', ['connect']);

// Default task
gulp.task('default', function(cb) {
    // Clean out dist/ folder before everything else
    runSequence('clean', ['build', 'server'],
        cb);
});
EN

回答 1

Stack Overflow用户

发布于 2015-06-22 11:39:29

尝试从构建任务中移除手表,并有单独的任务来处理监视。类似于:

代码语言:javascript
复制
gulp.task("watch-less", function() {
    watch(path.LESS_MANIFEST, function () {
        gulp.start("less");
    ));
});

这样,它只会在文件更改时触发任务。而且,监视任务可以与构建分开运行(如果使用某种形式的构建自动化,这也会使您的生活更轻松)。

此外,还可以指定许多监视任务,如下所示:

代码语言:javascript
复制
gulp.task("watch", function() {
    watch(paths.FOO, function() {
        gulp.start("foo");
    });

    watch(paths.BAR, function() {
        gulp.start("bar");
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30942814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档