【问题标题】:Laravel Elixir - Gulp watch not finishing until terminal gets focusLaravel Elixir - Gulp 手表直到终端获得焦点才完成
【发布时间】:2016-06-03 22:38:36
【问题描述】:

我正在使用 Laravel Elix 和 Gulp(在 Windows 8 上)来组合和编译我的 Angular.jsSCSS 文件。请参阅下面的代码:

var elixir = require('laravel-elixir');
require('./tasks/angular.task.js');
require('./tasks/bower.task.js');
require('laravel-elixir-livereload');

elixir.config.js.outputFolder = 'public/js/';

elixir(function(mix){
     mix
        .sass('app.scss')
        .bower()
        .angular('resources/assets/angular/');
});

问题是当我运行gulp watch 时,组合的all.js 文件在我单击终端窗口(给它焦点)之前不会更新。说明 gulp 已经完成了任务:

[13:26:45] Finished 'angular in resources/assets/angular/' after 26 ms

【问题讨论】:

  • 你确定那是它完成的时候,还是只是终端窗口更新的时候?因为处理它所花费的时间(26 毫秒)看起来不错。您是使用默认的cmd,还是使用其他替代方法,例如cmder、Console2 等?
  • 我也尝试等待 30-40 秒,但 all.js 仅在我单击终端窗口后立即更新。我正在使用标准窗口cmd
  • “更新”是指将文件写入磁盘或在浏览器中更新文件? (我看到你正在使用 LiveReload)。
  • 抱歉不清楚,我的意思是把文件写入磁盘。它“感觉”就像它留在内存中,直到我点击终端窗口。我现在将删除所有节点模块并尝试全新安装,看看是否有帮助。我会在这里发布结果。
  • 好的。所以我做了一些进一步的测试,它似乎确实将文件写入磁盘。只有我的 IDE (PhpStorm) 不会更新其文件的表示,直到我模糊 IDE 然后重新关注它(因此我认为终端上的焦点是更新文件的原因)。这个问题现在似乎毫无意义,我是否应该删除它?

标签: laravel gulp focus watch laravel-elixir


【解决方案1】:

看完之前的cmets,我觉得还是有办法可以用的,如果愿意的话:

进入同步部分下的系统设置,您可以在应用程序空闲时将文件保存在计时器上。

这样你在打字时就会让观察者按预期运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2018-08-23
    • 2019-10-31
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2016-07-02
    相关资源
    最近更新 更多