2016-11-11 34 views
5

我有一个Ionic 1.3.1项目的基础上,旧的,但黄金,发电机 - 吞咽角的架构,我想启用Live Reload在设备上(Android)。配置Live Reload的基础上的发电机 - 吞吐角-Identity

我一饮而尽配置路径是这样的:

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

这意味着运行在我使用gulp serve浏览器中的项目,并在我使用gulp build && ionic run android在Android设备上运行。

我不能使用命令ionic run android --livereloadas described in the doc here因为它同步www文件夹中(后gulp build)我有缩小的文件,而不是源文件。

所以我想以某种方式混淆两个命令gulp serveionic run android --livereload但我真的不知道如何实现这一点。

+0

你好, 你可以查看此链接https://codepen.io/leob6/post/quick-tip-using-gulp-to-customize-the-serve-run-and-build-process-for-your -ionic框架,应用程序 – arjunaaji

回答

3

我解决了更新我的gulp watch任务,每次有变更时,它运行gulp build而命令ionic run android --livereload正在运行。

我添加了一个标志--livereloadgulp 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 

享受!