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

标签 javascript gulp gulp-watch

我不知道为什么那些实时重新加载的任务在我上次执行 ionic 更新后就消失了。现在我正在尝试解决这个问题,但仍然想知道为什么不起作用。我正在关注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

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

更新

这就是我正在尝试实现的(您可以在我上面粘贴的链接上看到它):

“监视任务用于在我们更改文件时运行任务。当您编写代码并修改文件时,gulp.watch() 方法将监听更改并自动再次运行我们的任务,这样我们就不会”不必每次都不断跳回命令行并运行 gulp 命令”

最佳答案

我知道这会解决问题,但使用实时服务器而不是实时重新加载,看看是否有效。因为我过去也遇到过很多实时重载问题。

npm install live-server

然后:

live-server

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

关于javascript - 在 GULP 中按 Ctrl + S 后实时重新加载不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28570834/

相关文章:

javascript - 如何通过 ES6 导入包含 Foundation 6 JS 文件?

javascript - gulp watch with babel 然后 pm2 restart

javascript - Gulp watch 卡在最后并显示正在开始任务

javascript - autoprefixer watch 任务配置

javascript - 如何仅在按下某个键时更改值?

javascript - Cordova 为 Android 构建错误所以我无法构建我的解决方案

javascript - 为什么这个对象返回相同的设置?

Javascript:在脚本中声明全局变量并在另一个脚本中使用它

javascript - 对象属性未定义

node.js - 使用 Gulp "connect"启动 Node.js 服务器在实时重新加载时中断(使用 html5 模式的 Angular 应用程序)