Die*_*ira 4 javascript node.js gulp
我刚刚开始使用Gulp来改进我的工作流程.我目前有一个名为stylescompiles .lessfiles的任务,一个名为的任务watch,用于监视任何.less文件中的更改,然后运行styles任务.我gulpfile.js包含这段代码:
var gulp = require( 'gulp' ),
less = require( 'gulp-less' ),
autoprefixer = require( 'gulp-autoprefixer' ),
minifycss = require( 'gulp-minify-css' ),
jshint = require( 'gulp-jshint' ),
uglify = require( 'gulp-uglify' ),
imagemin = require( 'gulp-imagemin' ),
rename = require( 'gulp-rename' ),
clean = require( 'gulp-clean' ),
concat = require( 'gulp-concat' ),
notify = require( 'gulp-notify' ),
cache = require( 'gulp-cache' ),
header = require( 'gulp-header' ),
footer = require( 'gulp-footer' );
// styles task
gulp.task( 'styles', function() {
return gulp.src( 'src/styles/main.less' )
.pipe( less({ paths: ['src/styles/'] }) )
.pipe( autoprefixer( 'last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4' ) )
.pipe( gulp.dest( 'dist/assets/css' ) )
.pipe( rename( 'main.min.css' ) )
.pipe( minifycss() )
.pipe( gulp.dest( 'dist/assets/css' ) )
.pipe( notify({ message: 'Styles task complete' }) );
} )
(...)
// watch task
gulp.task('watch', function() {
// Watch .less files
gulp.watch('src/styles/**/*.less', function(event) {
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
gulp.run('styles');
});
});
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行时gulp watch,它启动任务并styles在我第一次更改.less文件时运行任务.在第一次之后,我只记录了消息(File X was changed, running tasks...).难道我做错了什么?
感谢任何提示或帮助!
只需要一些信息:我正在使用Gulp 3.4.0运行Node.js 0.10.24.以下是提示输出的屏幕截图:

Die*_*ira 10
在@SteveLacy建议打破我的任务部分并检查其中是否有任何一个导致麻烦之后,我得到了我真正愚蠢的错误导致错误:gulp-notify仅适用于Mac和Linux,我的操作系统是Windows.从插件描述:
使用node-notifier模块向Mac Notification Center或Linux通知(使用notify-send)发送消息.也可以指定自定义通知程序(例如Growl通知).
对我感到羞耻.
我遵循了一个关于Gulp入门的非常好的教程,并且gulp-notify是其上使用的插件之一.我的mystake没有注意插件的细节.
从我移除gulp-notify后gulpfile.js,一切正常,我得到了所有正确的日志,我的gulp watch任务就像一个魅力!
简而言之: AWAYS检查插件与您的操作系统的兼容性.
感谢所有花时间试图帮助我的人!
| 归档时间: |
|
| 查看次数: |
7068 次 |
| 最近记录: |