.NETコアプロジェクトのプリコンパイルスクリプトの一部としてgulp.watch
を実行しています。 dotnet run
を実行すると、gulp.watch
呼び出しがスレッドをブロックしているように見えるので、アプリケーションはまったく起動しません。`gulp.watch`は` dotnet run`の実行をブロックします
gulp.watch
にスレッドにハンドルを返すように指示するにはどうすればよいですか?
dotnet new
を使用し、gulp
からnpm
をインストールすることで問題を再現するための最小の実例を作成しました。
この
は私gulpfile.js
次のとおりです。同じよう
using System;
namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
マイproject.json
ファイルが見えます:
var gulp = require('gulp');
gulp.task('copy',() => {
gulp.src("watch_src/foo.txt")
.pipe(gulp.dest("watch_dst/"));
});
gulp.task('watch',() => {
var watcher = gulp.watch("watch_src/foo.txt", ['copy']);
watcher.on('change', function(){
console.log('foo.txt changed!');
});
});
gulp.task('default', ['watch']);
私Program.cs
ファイルは次のようになります
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"imports": "dnxcore50"
}
},
"scripts": {
"precompile": "gulp"
}
}
は、プリコンパイルスクリプトを実行しますdotnet run
を実行しますdはfoo.txt
に変更され、コンソールのイベントハンドラに反映されます。しかしHello World!
を印刷する必要がありますMain
メソッドが実行されません。
c:\Temp\src\gulptest>dotnet run
Compiling gulptest for .NETCoreApp,Version=v1.0
[17:03:48] Using gulpfile c:\Temp\src\gulptest\gulpfile.js
[17:03:48] Starting 'watch'...
[17:03:48] Finished 'watch' after 11 ms
[17:03:48] Starting 'default'...
[17:03:48] Finished 'default' after 43 ╬╝s
foo.txt changed!
[17:04:15] Starting 'copy'...
[17:04:15] Finished 'copy' after 34 ms
私も 'gulp-watch'プラグインを使用しようとしましたが、同じように動作します。 – Luca
あなたは最終的に答えを見つけましたか?私はそれを知ることに興味があるだろう。ありがとう –
いいえ残念ながら、誰もこの問題を抱えていないか、別の方法で解決しているようです。私はまた、ギャルのコミュニティ[ここ](https://gitter.im/gulpjs/gulp)と連絡を取ろうとしましたが、運はありません。 – Luca