我怎样才能自动 运行 所有 gulp 任务?

How can I automatically run all gulp tasks?

我来找你帮忙了。 我正在使用 gulp 和浏览器同步来自动执行我的任务:编译 sass,在每次更改时重新启动开发服务器,并检查浏览器中的更改。我只是想让它更快。问题是当我 运行 gulp (我也使用 gulp-nodemon)它只是 运行s nodemon 但浏览器同步没有 运行 和其他任务也不 运行。如果我 运行 每个任务单独,它们工作,但默认情况下与 gulp 一起工作,它们不工作。如果你愿意帮助我,我将永远感激你。

这是我的代码

    const gulp = require('gulp'),
    sass = require('gulp-sass'),
    autoprefixer = require('gulp-autoprefixer'),
    browserSync = require('browser-sync').create(),
    nodemon = require('gulp-nodemon'),
    watch = require('gulp-watch');

gulp.task('scss', () => {

    let stream = gulp
        .src('./src/scss/*/*.scss')
        .pipe(sass({outputStyle: 'expanded',}))
        .pipe(autoprefixer({ versions: 'last 2 browsers', }))
        .pipe(gulp.dest('./src/public/css'))
        .pipe(browserSync.stream());

    return stream;
});

gulp.task('nodemon', cb => {
    let started = false;

    return nodemon({
        script: './src/index.js',
        ext: 'ejs js',
        ignore: ['gulpfile.js'],
    }).on('start', () => {
        if (!started) {
            cb();
            started = true;
        }
    });
});

gulp.task('browser-sync', gulp.series('nodemon'), () => {
    browserSync.init({
        proxy: 'http://localhost:3000',
        open: false,
        files: ['public/**/*.js'],
        browser: 'google chrome',
        port: 3000,
    });
});

gulp.task('default', gulp.series('browser-sync'), () => {
    gulp.watch('./src/views/*/*.ejs').on('change', browserSync.reload());
    gulp.watch('./src/public/*/*.js').on('change', browserSync.reload());
    gulp.watch('./src/public/css/*/*.css').on('change', browserSync.stream());
    gulp.watch('./src/scss/*/*.scss', gulp.series('scss'));
});

这有三个参数:

gulp.task('browser-sync', gulp.series('nodemon'), () => {

在gulp v4+中你只能有两个参数,所以把它改成

gulp.task('browser-sync', gulp.series('nodemon', () => {

相同

gulp.task('default', gulp.series('browser-sync', () => {

  • 也会有一个闭括号 ) 添加到这些函数的末尾,例如 }));