【发布时间】:2016-12-17 06:52:24
【问题描述】:
这个问题...
...记得我的另一个人,但似乎不同。 (在
code之后向下滚动,看看我的意思)
我在其他项目中对gulp-watch 没有真正的问题,特别是因为我修复了一个类似的问题。 (你可以在这篇文章的末尾找到)
但在这个项目(更大的网络应用程序)中,我认为 nodejs/gulp-watch 达到了他的极限。
我从 gulp(通过 gulp-watch)获得的 JS 文件在多次触发时似乎已损坏。
Javascript 文件...
- ...当我通过
gulp命令使用默认任务时,没有损坏。 - ...在观察事件第一次识别到更改时没有损坏。
- ...通常是损坏的,毕竟在监视事件的触发任务之后。
我比较了生成的 JS 文件的好坏(损坏),发现一个文件丢失了一半的内容。
意思:
它在 JS 文件的中间停止并继续下一个 JS 文件。 (只连接一半的js文件)
之前和之后的所有其他 JS 文件都连接在一起而不会丢失。
有谁知道这个问题并知道如何解决?
我已经试过了……
- ...以 500 毫秒的延迟添加
gulp-wait,但这没有效果。 - ...检查此位置的代码是否错误,但似乎有效。
- ...重启机器。
环境: Debian Jessie 上的 NodeJS 4.4.7。
终端输出: 这 8 个启动脚本任务不会立即触发。这是在保存文件并将其上传到 Gulp 正在监视的服务器和目录时检测到的不同更改。 (箭头、工作和失败的文本不是输出的一部分)
user@host: /path/to/vhost/public$ gulp watch
[20:09:02] Using gulpfile /path/to/vhost/public/gulpfile.js
[20:09:02] Starting 'watch'...
[20:09:02] Finished 'watch' after 25 ms
[20:09:32] Starting 'scripts'...
[20:09:32] Finished 'scripts' after 84 ms <- worked
[20:09:49] Starting 'scripts'...
[20:09:49] Finished 'scripts' after 51 ms <- failed
[20:09:51] Starting 'scripts'...
[20:09:51] Finished 'scripts' after 38 ms <- failed
[20:09:53] Starting 'scripts'...
[20:09:54] Finished 'scripts' after 68 ms <- worked
[20:10:01] Starting 'scripts'...
[20:10:02] Finished 'scripts' after 63 ms <- worked
[20:10:18] Starting 'scripts'...
[20:10:19] Finished 'scripts' after 59 ms <- failed
[20:10:35] Starting 'scripts'...
[20:10:35] Finished 'scripts' after 52 ms <- worked
[20:10:53] Starting 'scripts'...
[20:10:54] Finished 'scripts' after 58 ms <- failed
gulpfile.js:
/////////////
// INCLUDE //
/////////////
var gulp = require('gulp');
// Plugins
var autoprefixer = require('gulp-autoprefixer');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var sass = require('gulp-ruby-sass');
var uglify = require('gulp-uglify');
var expect = require('gulp-expect-file');
// Globals
var jsFiles = ['js/custom1.js',
'js/custom2.js',
'js/custom3.js',
'js/custom4.js',
'js/custom5.js',
'js/custom6.js',
'js/custom7.js',
'js/custom8.js',
'js/custom9.js',
'js/custom10.js',
'js/custom11.js',
'js/custom12.js',
'js/custom13.js',
'js/custom14.js',
'js/custom15.js',
'js/custom16.js',
'js/custom17.js',
'js/custom18.js'];
var cssFiles = ['scss/style.scss'];
///////////
// TASKS //
///////////
// FILES
gulp.task('files', function() {
var files = cssFiles.concat(jsFiles);
return gulp.src(files)
.pipe(expect(files));
});
// SCRIPTS
gulp.task('scripts', function() {
return gulp.src(jsFiles)
.pipe(concat('script.js'))
.pipe(rename({suffix: '.min'}))
// .pipe(uglify())
.pipe(gulp.dest(''));
});
// SASS
gulp.task('sass', function() {
return sass(cssFiles, {style: 'compressed'})
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(''));
});
// DEFAULT
gulp.task('default', ['files','scripts', 'sass']);
// WATCH
gulp.task('watch', function() {
// Watch .js files
gulp.watch(jsFiles, ['scripts']);
// Watch .scss files
gulp.watch(cssFiles, ['sass']);
});
让我想起另一个错误
两个月前,我遇到了类似的错误,仅在触发监视任务时才起作用。之后,您必须重新启动命令。奇怪的是,在终端中没有任何错误消息,它的响应好像它可以工作一样。但结果是一个空的 css 文件。
我 fixed this OLD issue 将我的 nodejs 安装从 0.12.x 更新到 4.x.x。
但目前的问题似乎有所不同。
【问题讨论】:
标签: node.js gulp gulp-watch gulp-concat