5

Live Reloadデバイス (Android) で有効にしたい、古いがゴールドの generator-gulp-angular に基づくアーキテクチャを持つ Ionic 1.3.1 プロジェクトがあります。

私のgulp設定パスは次のようになります:

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

これは、使用するブラウザーでプロジェクトをgulp serve実行し、使用する Android デバイスで実行することを意味しますgulp build && ionic run android

ionic run android --livereload ここのドキュメントで説明されているようにコマンドを使用することはできません。これは、ソース ファイルではなく、縮小されたファイルがあるwwwフォルダーを同期するためです。gulp build

gulp serveしたがって、2つのコマンドを何らかの方法で混同したいと思いますionic run android --livereloadが、これを達成する方法がわかりません。

4

1 に答える 1

3

コマンドgulp watchの実行中に変更があるたびに実行されるというタスクの更新を解決しました。gulp buildionic run android --livereload

にフラグを追加した--livereloadのでgulp watch/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'),
    path.join(conf.paths.src, '/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

楽しみ!

于 2016-11-15T03:21:09.663 に答える