javascript - gulp-watch 无休止地编译而不对文件进行更改

标签 javascript node.js gulp gulp-watch

出于某种原因,我的脚本 gulp-watch 任务无休止地循环运行(如此之多以至于它激活了我的 MBP 上的风扇!),尽管我在其他各种项目中使用了相同的 gulp 文件。

它只是一遍又一遍地编译脚本。尝试删除所有 Node 模块并再次使用 npm install。但同样的问题。我设置的 sass 编译任务没有同样的问题。

我什至尝试排除编译 vendor 代码,如 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();

终端输出(路径替换为'PATH'):

[15:49:17] Starting 'scripts'...
[15:49:17] Finished 'scripts' after 2.08 ms
[15:49:18] /_PATH_//js/script-dist.js reloaded.
[15:49:18] Starting 'scripts'...
[15:49:18] Finished 'scripts' after 2.58 ms
[15:49:19] /_PATH_//js/script-dist.js reloaded.
[15:49:19] Starting 'scripts'...
[15:49:19] Finished 'scripts' after 1.41 ms
[15:49:19] /_PATH_//js/script-dist.js reloaded.
[15:49:30] Starting 'scripts'...
[15:49:30] Finished 'scripts' after 1.42 ms
[15:49:31] /_PATH_//js/script-dist.js reloaded.
[15:49:31] Starting 'scripts'...
[15:49:31] Finished 'scripts' after 2.45 ms
[15:49:32] /_PATH_//js/script-dist.js reloaded.
[15:49:32] Starting 'scripts'...
[15:49:32] Finished 'scripts' after 1.17 ms
[15:49:33] /_PATH_//js/script-dist.js reloaded.
[15:49:33] Starting 'scripts'...
[15:49:33] Finished 'scripts' after 1.84 ms
[15:49:34] Starting 'scripts'...
[15:49:34] Finished 'scripts' after 1.1 ms
[15:49:35] /_PATH_//js/script-dist.js reloaded.
[15:49:35] Starting 'scripts'...
[15:49:35] Finished 'scripts' after 1.73 ms
[15:49:36] Starting 'scripts'...
[15:49:36] Finished 'scripts' after 1.12 ms
[15:49:36] /_PATH_//js/script-dist.js reloaded.
[15:49:36] /_PATH_//js/script-dist.js reloaded.
[15:49:36] Starting 'scripts'...
[15:49:36] Finished 'scripts' after 908 μs
[15:49:37] /_PATH_//js/script-dist.js reloaded.
[15:49:37] /_PATH_//js/script-dist.js reloaded.

最佳答案

您正在查看 js 文件夹中的 *.js 文件,然后运行 ​​scripts 任务。

gulp.watch('./js/*.js', ['scripts']);});

您的 scripts 任务是在 js 文件夹中编写一个 .js 文件

.pipe(gulp.dest('./js/'))

...然后再次触发 watch 条件...您现在有一个循环。

关于javascript - gulp-watch 无休止地编译而不对文件进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32046257/

相关文章:

javascript - 简单的 js slider ,读取 ofssetX 使处理程序跳跃

javascript - 使用 CSRF 的 SailsJS View 层分离

node.js - Nodejs + Express : make http request wait for udp response

javascript - 使用 Gulp Header 在 Header 文件中包含当前年份

angularjs - 在 gulp 构建期间将 git commit hash 添加到 javascript 变量

javascript - 如何修复 snapsvg.js 中蒙版的位置?

javascript - 尝试从 2 个数组中过滤出匹配记录,因为 1 个数组具有不同的结构

javascript - Node --experimental-modules - 错误 : Cannot find module

javascript - 流/gulp注入(inject)问题

javascript - 安装过程中出现错误 : Extension is invalid - Adapting chrome extension into firefox