我目前正在使用WAMP运行本地服务器,我正在尝试设置Gulp.js.以下是我的gulpfile的内容:
var gulp = require('gulp'),
sass = require('gulp-ruby-sass'),
autoprefixer = require('gulp-autoprefixer'),
minifycss = require('gulp-minify-css'),
minifyhtml = require('gulp-minify-html'),
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'),
livereload = require('gulp-livereload'),
lr = require('tiny-lr'),
server = lr();
gulp.task('styles', function() {
gulp.src('src/styles/main.scss')
.pipe(sass({ style: 'expanded' }))
.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({suffix: '.min'}))
.pipe(minifycss())
.pipe(gulp.dest('dist/css'))
.pipe(livereload(server))
.pipe(notify({ message: 'Styles task complete' }));
});
gulp.task('html', function() {
gulp.src('src/*.php')
.pipe(minifyhtml())
.pipe(gulp.dest('dist'))
.pipe(livereload(server))
.pipe(notify({ message: 'HTML task complete' }));
});
gulp.task('default', function() {
gulp.run('html');
});
这是我运行gulp
时得到的输出:
[gulp] Using gulpfile C:\wamp\www\SawyerK\gulpfile.js
[gulp] Starting 'default'...
gulp.run() has been deprecated. Use task dependencies or gulp.watch task trigger
ing instead.
[gulp] Starting 'html'...
[gulp] Finished 'html' after 132 ms
[gulp] Finished 'default' after 134 ms
[gulp] gulp-notify: [Gulp notification] HTML task complete
events.js:72
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED
at errnoException (net.js:904:11)
at Object.afterConnect [as oncomplete] (net.js:895:19)
从我发现的,这个错误被抛出,因为其他东西正在使用Node想要的端口或类似的东西?但是,我不完全确定这是否正确,我肯定不知道如何解决它。有什么想法吗?谢谢!
编辑:如果有帮助的话,我似乎已将其缩小为gulp-notify
答案 0 :(得分:3)
我认为问题是你在样式任务和HTML中使用了livereload两次。也许最好使用观察者的livereload:
gulp.task('watch', function() {
var server = livereload();
gulp.watch('build/**').on('change', function(file) {
server.changed(file.path);
});
});
更新: 对不起,错了=)这是一篇很棒的文章,第二部分展示了如何使用监视任务。 link要使用livereload,您需要使用listen方法启动服务器。
答案 1 :(得分:0)
你偶然发现Windows吗?我的开发团队遇到了这个问题,它看起来在Windows 7+ gulp-notify上需要Growl。 :/
您可以在gulpforwindows.com下载exe,我相信您也需要重启机器。