离子服务忽略gulpStartupTasks

时间:2015-07-07 18:29:55

标签: ionic-framework gulp

我有这个ionic.project文件:

private:
        Windows::Web::Http::HttpClient^ httpClient;
        Windows::Web::Http::HttpResponseMessage^ response;

但是gulp任务没有被执行,我甚至添加了一些console.logs来调试但没有发生任何事情。

有什么想法吗?

更新

我已经检测到gulpStartupTasks正在与Ionic初始化异步执行,所以当Ionic试图找到www文件夹并且找不到它时(因为我的启动任务还没有运行)它失败并杀死进程

但是,如果我创建一个空的www文件夹来欺骗Ionic它可以工作,但打开一个浏览器,显示错误,指出找不到index.html

然而,在那之后的几秒钟,我看到我的shell中正在执行启动任务

如果我刷新页面就可以了

如何在离子尝试查找www文件夹之前运行这些启动任务?

3 个答案:

答案 0 :(得分:4)

根据最新的Ionic-Cli documentation,如果您希望在提供应用之前运行任何gulp任务,请将serve:before任务添加到项目根目录中的gulpfile.js文件中。在你的情况下,这将是:

gulp.task("serve:before", [
    "styles",
    "source",
    "watch"
]);

答案 1 :(得分:0)

我认为Ionic并没有忽略gulpStartupTasks,因为我之前已经更新了问题,而是异步执行它们到服务器初始化。

要解决这个问题,我已经在package.json中添加了一个postinstall脚本来完成创建www文件夹,处理源文件然后将它们复制到www文件夹的工作。

这解决了问题,但我仍然不明白为什么gulpStartupTasks执行异步而不是同步,这似乎是错误的。不是吗?

答案 2 :(得分:0)

所以我想出来了。我猜你和我一样,正在编辑不同的.sass或.scss文件而不是离子骨架应用程序附带的文件。在这种情况下,您需要将此新路径添加到gulp文件中,或者livereload将获取更改,但实际上不会在路径中使用新的SASS文件执行“sass”命令。

这是我在gulpfile.js中编辑的路径行

var paths = {
  sass: ['./scss/**/*.scss', './www/sass/**/*']
};

'。/ www / sass / ** / *'是我在主要的ionic.app.scss文件中放入我@inmport的新SASS文件的地方。

// Include all of Ionic
@import "www/lib/ionic/scss/ionic";
@import "www/sass/test";