2016-11-10 9 views
6

laravel elixirを使用しようとしていて、正常に動作しています。Laravel elixir "gulp watch"がJavascriptの変更を監視しません

gulpfile.js

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

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

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

しかし、私はgulp watchを使用する場合、それは私がapp.js一口を編集した場合、私はgulpを実行した場合だけ、しかし、それをコンパイルしていないので、唯一のscssファイルやないJSを監視それはちょうどgulp watchであり、それは正しく動作しませんすべてをコンパイルします。

+4




最終勧告であることを防ぎ、なぜ-sの多くがあることができ、[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の修正の変更を防止...あなたの問題は、ウォッチャーのデバッグを必要とするため、ファイルがそうで変更またはないと示すイベントを取得する場合のは、コメント欄でそれを議論しましょう時間。これは、未解決の問題のようです

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

Nope)cuz webpackはコードをネイティブの "旧式スタイル" jsにコンパイルします。しかしあなたがnodejsを少し知っているならあなたは自分のウォッチャーを書くことができます。 – num8er

+1

実際に私はノードを使ったことはありませんでしたが、かなりよく分かっていますし、laravel elixirの代わりにプロジェクト全体を設定することもできましたが、クールなものを使うためにwebpackを修正したいです。 – paolobasso