如何从Gulp脚本中运行`ionic serve`

3
我正在尝试使用protractor和gulp设置端到端测试。因此,为了在CI服务器上执行我的测试,我需要启动一个服务器,用于提供ionic的html/js/css文件。
我不确定ionic cli是如何触发服务器的,它是否有某种任务运行器?如果有,我能否从gulp脚本中触发它?
2个回答

1

这不是最优雅的方式,但我相信这可以完成任务。

首先在您的gulpfile.js中包含child-process

var exec = require('child_process').exec;

创建一个名为startServer的新gulp任务,如下所示:

gulp.task('startServer', function(){
    exec('ionic serve', function (err, stdout, stderr) {});
});

将这个新任务传递给您的默认任务,如下所示,
gulp.task('default', [/*'task1','task2',...,*/'startServer']);
然后只需运行gulp而不是ionic serve,您就可以开始工作了。
希望能对您有所帮助。 :)

0

正如您在这里所读到的http://www.reddit.com/r/ionic/comments/362log/how_does_ionic_serve_all_work/,Ionic会启动自己的Web服务器(就像使用WAMPP或XAMPP一样)。

因此,我实际上进行了测试,它确实是真的;如果您熟悉XAMPP或WAMPP,则可以在WAMPP的www文件夹中启动您的ionic项目,然后通过http://localhost/myapp/www链接访问它(不使用ionic serve命令),如果您已经使用ionic start myapp启动了您的ionic应用程序。

我对Gulp并不是很有经验,但您可以查看一下这个插件https://www.npmjs.com/package/gulp-live-server是否能帮助您完成任务。


由于这是要在CI(持续集成)服务器上运行,您必须确保依赖于Node包而不是像XAMPP这样的工具,因为这会使您的CI过程变得脆弱。我目前正在使用类似gulp-live-server的gulp包,但我想知道是否有办法利用ionic cli命令。 - Vitalij
嗯,我猜如果您可以在CI服务器上安装ionic cli,那么您很可能可以运行ionic serve命令。然而,由于ionic serve据说只启动一个http服务器(并设置文件更改的监视),因此您可以使用gulp-live-server(或任何您使用的)来实现类似的功能。然而,说实话,我没有尝试过这个,所以不幸的是我没有更多的经验来提供帮助。 - Nikola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接