2016-11-10 23 views
6

我想使用laravel elixir,它工作正常。Laravel elixir「gulp手錶」不注意Javascript的變化

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 watch,將無法正常工作。

+4

這似乎是一個懸而未決的問題:[https://github.com/laravel/ elixir/issues/598](https://github.com/laravel/elixir/issues/598) – camelCase

+1

是的,我在網上發現了太多東西,但沒有答案,只有問題。 – paolobasso

+1

@ paolo.basso99目前唯一的解決方案是降級 – manniL

回答

3

也許(但不是很確定)webpack問題。

所以嘗試另一種捆綁方式。

例如嘗試以下解決方法:

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

還要檢查終端它所輸出,也許有些錯誤,當它試圖捆綁app.js文件發生。

如果它不會工作,那麼讓我們來討論它的意見,因爲你的問題需要守望的調試如果它得到事件,表示文件更改與否等等...

也許OS防止改變修改時間。

可以有很多,爲什麼-S是防止


最後的建議是:

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.

+1

我可以使用函數require()使用「mix.scripts()」嗎? – paolobasso

+1

不)cuz webpack將代碼編譯爲本地「老式」js。但如果你知道nodejs一點你可以寫你自己的觀察者。 – num8er

+1

其實我從來沒有用過節點但是我知道的很好Grunt,我可以設置整個項目來代替laravel不死藥,但我寧願修復webpack以便使用它的酷東西 – paolobasso