在GULP中按Ctrl + S后实时重新加载不起作用

时间:2015-02-17 20:48:10

标签: javascript gulp gulp-watch

我不知道为什么那些实时重新加载的任务在最后一次Ionic Update之后就消失了。现在我正在尝试解决这个问题,但仍然想知道为什么不起作用。我正在关注this guide here,但仍然看不出我的错误。

查看我的gulpfile.js

的某些部分
var paths = {
  sass: ['/scss/**/*.scss'],
  js: ['www/js/*.js', 'www/js/**/*.js', '!www/js/lib.min.js', '!www/js/code.min.js']
};

gulp.task('compress-lib', function() {
  gulp.src([
    './www/lib/ionic/js/ionic.bundle.min.js'
  ])
    .pipe(concat('lib.min.js'))
    .pipe(gulp.dest('./www/js'))
});

gulp.task('compress-js', function() {
  gulp.src([
    './www/js/app.js',
    './www/js/lines/controller.js',
    './www/js/lines/service.js'
  ])
    .pipe(ngAnnotate())
    .pipe(concat('code.min.js'))
    .pipe(gulp.dest('./www/js'))
});

// JSHint task
gulp.task('lint', function() {
  gulp.src(paths.js)
      .pipe(jscs())
      .pipe(jshint())
      .pipe(jshint.reporter('default'));
});

gulp.task('sass', function(done) {
  gulp.src('./scss/ionic.app.scss')
    .pipe(sass({onError: function(e) { console.log(e); } }))
    .pipe(autoprefixer('last 2 versions', 'Chrome', 'ios_saf','Android'))
    .pipe(gulp.dest('./www/css/'))
    .pipe(minifyCss({
      keepSpecialComments: 0
    }))
    .pipe(rename({ extname: '.min.css' }))
    .pipe(gulp.dest('./www/css/'))
    .on('end', done);
});

gulp.task('watch', function() {
  gulp.watch(paths.sass, ['sass']);
  gulp.watch(paths.js, ['lint', 'compress-js']);
});

每次我对文件ctrl + s进行www/js/lines/controller.js,在这种情况下[14:41:11] Starting 'lint'... [14:41:11] Finished 'lint' after 17 ms [14:41:11] Starting 'compress-js'... [14:41:11] Finished 'compress-js' after 5.31 ms JS changed: www/js/lines/controller.js JS changed: www/js/code.min.js ,在控制台上你可以看到类似的内容:

gulp

这意味着有些任务正常工作,但是如果我想在视图上看到这些更改,我必须转到控制台并输入ctrl + s,你知道为什么应用程序不是只是在{{1}}之后重新加载?

更新

这是我想要实现的(你可以在我粘贴的链接上看到它):

"监视任务用于在我们对文件进行更改时运行任务。当您编写代码并修改文件时,gulp.watch()方法将监听更改并自动再次运行我们的任务,因此我们不必每次都连续跳回命令行并运行gulp命令。 #34;

1 个答案:

答案 0 :(得分:1)

我知道这是解决问题但是使用live-server而不是实时重新加载,看看是否有效。因为我过去也有过很多关于实时重载的问题。

npm install live-server

然后:

live-server

注意:在输入上述命令时,请确保您位于项目目录中。