gpt4 book ai didi

javascript - gulp.watch 进入无限循环

转载 作者:搜寻专家 更新时间:2023-11-01 00:11:50 25 4
gpt4 key购买 nike

这是我的 gulpfile。

var gulp = require('gulp');
var less = require('gulp-less');
var clean = require('gulp-clean');
var mincss = require('gulp-minify-css');
var gulpif = require('gulp-if');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var inject = require('gulp-inject');
var templateCache = require('gulp-angular-templatecache');
var angularFilesort = require('gulp-angular-filesort');

var env = 'development';

gulp.task('default', ['clean'], function() {
gulp.start('static', 'html');
});

gulp.task('production', ['set-production', 'default']);

gulp.task('development', ['default'], function() {
gulp.watch('./src/less/**/*.less', ['styles']);
gulp.watch('./src/js/**/*.js', ['scripts']);
gulp.watch('./*.html', ['html']);
});

gulp.task('static', function() {
return gulp.src(['./src/static/*.*'])
.pipe(gulp.dest('./dist/static'));
});

gulp.task('clean', function() {
return gulp.src('./dist', {
read: false
})
.pipe(clean());
});

gulp.task('html', ['styles', 'vendor-js', 'templateCache', 'scripts'], function() {
return gulp.src('./*.html')
.pipe(inject(gulp.src(['./dist/js/**/*.js'])
.pipe(angularFilesort()), {
'ignorePath': 'dist/js',
'addRootSlash': false,
'addPrefix': 'scripts'
}))
.pipe(inject(gulp.src(['./dist/vendors/**/*.js', '!./dist/vendors/less/less.js'], {
read: false
}), {
'name': 'vendors',
'ignorePath': 'dist/vendors',
'addRootSlash': false,
'addPrefix': 'vendors'
}))
.pipe(inject(gulp.src(['./dist/css/*.css'], {
read: false
}), {
'ignorePath': 'dist/css',
'addRootSlash': false,
'addPrefix': 'styles'
}))
.pipe(gulp.dest('dist'));
});

gulp.task('styles', function() {
return gulp.src('./src/less/*.less')
.pipe(less())
.pipe(gulpif(env === 'production', mincss()))
.pipe(gulpif(env === 'production', concat('styles.css')))
.pipe(gulp.dest('dist/css'));
});

gulp.task('scripts', function() {
return gulp.src('./src/js/**/*.js')
.pipe(gulpif(env === 'production', uglify()))
.pipe(gulpif(env === 'production', concat('scripts.js')))
.pipe(gulp.dest('dist/js'));
});

gulp.task('vendor-js', function() {
return gulp.src(['./vendors/jQuery/jquery-1.11.1.js', 'vendors/angular/angular.js'])
.pipe(concat('vendors.js'))
.pipe(gulp.dest('dist/vendors'));
});

gulp.task('templateCache', function() {
return gulp.src('./src/js/**/*.tpl.html')
.pipe(templateCache('templatesCache.js', {
module: 'templatesCache',
standalone: true,
root: './templates/'
}))
.pipe(gulp.dest('./dist/js'));
});

gulp.task('set-production', function() {
env = 'production';
});

当我运行“gulp development”时,它会进入这样一个无限循环。 enter image description here

enter image description here

我确定我尝试观看内容的方式存在问题。有人可以帮我解决这个问题吗?

谢谢!

最佳答案

我认为你的问题来自你的 html 观察者。

事实上,您正在观察所有 .html 文件的变化以启动 html 任务,即将您的脚本和样式文件的引用注入(inject)到index.html 将导致这个无限循环。

当文件完成注入(inject)并写入磁盘时,您的 html 任务的最终 dest 会触发您的观察者,一次又一次地重新启动一切.

因此删除观察者或从观察者中排除 index.html 以防止重新启动

gulp.watch(['./*.html', '!index.html'], ['html']);

关于javascript - gulp.watch 进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com