【问题标题】:Laravel elixir "gulp watch" doesn't watch for Javascript changesLaravel 长生不老药“gulp watch”不监视 Javascript 更改
【发布时间】:2017-03-24 15:51:27
【问题描述】:

我正在尝试使用laravel elixir,它工作正常。

gulpfile.js

const elixir = require('laravel-elixir');

require('laravel-elixir-vue-2');

elixir(mix => {
    mix.sass('app.scss')
       .webpack('app.js');
});

但是当我使用gulp watch 时,它只监视scss 文件而不是JS 所以如果我编辑app.js gulp 就不会编译它但是如果我运行gulp 它会编译所有东西它只是@ 987654329@ 无法正常工作。

【问题讨论】:

  • 这似乎是一个未解决的问题:https://github.com/laravel/elixir/issues/598
  • 是的,我在网上也找到了一些东西,但没有答案,只有问题。
  • @paolo.basso99 目前唯一的解决方案是降级
  • @paolo.basso99 你能添加完整的gulpfile.js 文件吗?
  • @GerardReches 我已经更新了答案。

标签: javascript php laravel gulp gulp-watch


【解决方案1】:

webpack 可能(但不确定)有问题。

所以尝试另一种捆绑方式。

例如试试这个解决方法:

elixir(function(mix) {
    mix.scripts(['app.js'], 'public/js/app.js');
       .sass('app.scss');
});

还要检查终端输出的内容,可能在尝试捆绑app.js 文件时发生错误。

如果不行,那就在cmets中讨论吧,因为你的问题需要调试watcher,如果它得到指示文件更改的事件等等......

也许操作系统会阻止修改时间的改变。

可能有很多原因可以防止这种情况发生


最后的建议是:

You have to debug "watch" task in gulp and check if it's getting file change event or not. So if NOT - write just Your own task that will check changes and run webpack.

【讨论】:

  • 我可以使用“mix.scripts()”之类的函数吗?
  • Nope) 因为 webpack 将代码编译为原生的“旧式”js。但如果你对 nodejs 有点了解,你可以编写自己的 watcher。
  • 实际上我从来没有使用过节点,但是我非常了解 Grunt,我可以将整个项目设置为使用它而不是 laravel elixir,但我更愿意修复 webpack 以使用它很酷的东西
  • 我在 Docker 容器中的 Windows OS + Laravel 应用程序上有类似的东西。我正在更改文件,但容器中的观察者没有收到文件更改事件,因为 Windows 在 NTFS 中设置修改日期,但在 Docker 中是 EXT3,因此无法处理该事件,因此编写了定期遍历预定义文件并检查 md5 的自定义观察者-sum。
  • 如果你知道 grunt,那么就使用它,处理文件更改并在其上运行 webpack。
猜你喜欢
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 2017-01-03
  • 2016-01-08
  • 1970-01-01
相关资源
最近更新 更多