android – 基于generator-gulp-angular在Ionic项目上配置Live Reload

我有一个Ionic 1.3.1项目,其架构基于旧的但是黄金的生成器gulp-angular,我想在设备(Android)上启用Live Reload.

我的gulp配置路径如下所示:

exports.paths = {
  src: 'src',dist: 'www',tmp: '.tmp',e2e: 'e2e'
};

这意味着要在浏览器中运行项目我使用gulp服务并在Android设备中运行我使用gulp build&&离子运行android.

我不能使用命令离子运行android –livereload as described in the doc here因为它同步www文件夹在哪里(在gulp构建之后)我有缩小文件而不是源文件.

所以我想以某种方式混淆两个命令gulp serve和离子运行android –livereload但真诚地我不知道如何实现这一点.

最佳答案
我解决了更新我的gulp watch任务的问题,每当有一个更改它运行gulp build时,命令离子运行android –livereload正在运行.

我在我的gulp手表中添加了一个标志–livereload,所以我的/gulp/watch.js文件看起来像:

gulp.task('watch',['inject'],function () {

  var livereload = process.argv.length === 4 && process.argv[3] === '--livereload';

  gulp.watch([path.join(conf.paths.src,'/*.html'),'bower.json'],['inject-reload']);

  gulp.watch([
    path.join(conf.paths.src,'/app/**/*.css'),path.join(conf.paths.src,'/app/**/*.scss'),'/scss/*.scss')
  ],function(event) {
    if (livereload) {
      gulp.start('build');
    } else {
      if(isOnlyChange(event)) {
        gulp.start('styles-reload');
      } else {
        gulp.start('inject-reload');
      }
    }
  });

  gulp.watch(path.join(conf.paths.src,'/app/**/*.js'),function(event) {
    if (livereload) {
      gulp.start('build');
    } else {
      if(isOnlyChange(event)) {
        gulp.start('scripts-reload');
      } else {
        gulp.start('inject-reload');
      }
    }
  });

  gulp.watch(path.join(conf.paths.src,'/app/**/*.html'),function(event) {
    if (livereload) {
      gulp.start('build');
    } else {
      browserSync.reload(event.path);
    }
  });
});

如何使用:

在终端选项卡上:

ionic run android --livereload

并在另一个终端选项卡上:

gulp watch --livereload

请享用!

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...