我怎样才能自动 运行 所有 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', () => {
- 也会有一个闭括号
)
添加到这些函数的末尾,例如 }));
我来找你帮忙了。 我正在使用 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', () => {
- 也会有一个闭括号
)
添加到这些函数的末尾,例如}));