Javascript gulp watch无休止地编译而不更改文件
出于某种原因,我的脚本gulp watch任务无休止地在循环中运行(如此之多以至于它激活了我MBP上的风扇!),尽管事实上我在其他各种项目中使用相同的gulp文件 它只是一次又一次地编译脚本。尝试删除所有节点模块,并再次使用Javascript gulp watch无休止地编译而不更改文件,javascript,node.js,gulp,gulp-watch,Javascript,Node.js,Gulp,Gulp Watch,出于某种原因,我的脚本gulp watch任务无休止地在循环中运行(如此之多以至于它激活了我MBP上的风扇!),尽管事实上我在其他各种项目中使用相同的gulp文件 它只是一次又一次地编译脚本。尝试删除所有节点模块,并再次使用npm安装。但同样的问题。我设置的sass编译任务没有相同的问题 我甚至尝试过排除编译像jquery/其他插件这样的供应商代码gulp.watch(['./js/*.js','!/js/vendor/**'],['scripts']) 但还是有同样的问题 还尝试注释一些脚本,
npm安装
。但同样的问题。我设置的sass编译任务没有相同的问题
我甚至尝试过排除编译像jquery/其他插件这样的供应商代码<代码>gulp.watch(['./js/*.js','!/js/vendor/**'],['scripts'])代码>
但还是有同样的问题
还尝试注释一些脚本,并逐一重新介绍它们。但似乎没有一个始终如一的冒犯脚本
// include gulp
var gulp = require('gulp');
// --------------------------------------------------------------
// Plugins
// ---------------------------------------------------------------
var concat = require('gulp-concat');
var stripDebug = require('gulp-strip-debug');
var uglify = require('gulp-uglify');
var include = require('gulp-include');
var sass = require('gulp-sass');
var minifycss = require('gulp-minify-css');
var watch = require('gulp-watch');
var livereload = require('gulp-livereload');
var changed = require('gulp-changed');
// --------------------------------------------------------------
// JS
// ---------------------------------------------------------------
gulp.task('scripts', function() {
gulp.src(['./js/script.js'])
.pipe(include())
.pipe(concat('script-dist.js'))
.pipe(stripDebug())
.pipe(uglify())
.pipe(gulp.dest('./js/'))
.pipe(livereload());
});
// --------------------------------------------------------------
// Sass
// ---------------------------------------------------------------
gulp.task('styles', function() {
gulp.src('./ui/scss/styles.scss')
.pipe(include())
.pipe(sass({
errLogToConsole: true
}))
.pipe(minifycss())
.pipe(gulp.dest('./ui/css/'))
.pipe(livereload());
});
gulp.task('watch', function() {
gulp.watch('./ui/scss/*.scss', ['styles']);
gulp.watch('./js/*.js', ['scripts']);});
gulp.task('default', ['styles', 'watch']);
gulp.task('default', ['scripts', 'watch']);
livereload.listen();
终端输出(路径替换为“路径”):
您正在查看
js
文件夹中的*.js
文件,然后运行脚本
任务
gulp.watch('./js/*.js', ['scripts']);});
然后,您的脚本
任务将在js
文件夹中编写一个.js
文件
.pipe(gulp.dest('./js/'))
。。。然后再次触发手表状态。。。。现在您有了一个循环。啊,是的,这解决了它,谢谢!有道理。奇怪的是,我最初认为这很奇怪,但实际上没有尝试,因为我在多个项目中使用同一个文件,认为它必须自动忽略刚刚编译的文件。显然不是!这就成功了:
gulp.watch(['./js/*.js',!/js/vendor/**',!/js/script-dist.js',['scripts')代码>
.pipe(gulp.dest('./js/'))