gpt4 book ai didi

c# - `gulp.watch` 阻塞执行 `dotnet run`

转载 作者:行者123 更新时间:2023-11-30 18:19:18 25 4
gpt4 key购买 nike

我正在执行 gulp.watch 作为 .NET Core 项目中预编译脚本的一部分。在执行 dotnet run 时,gulp.watch 调用似乎阻塞了线程,因此应用程序根本无法启动。

如何告诉 gulp.watch 将句柄返回给线程?

我创建了一个最小的工作示例来重现问题,使用 dotnet new 并通过 npm 安装 gulp

这是我的 gulpfile.js:

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 文件如下所示:

using System;

namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}

我的 project.json 文件如下所示:

{
"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 将执行预编译脚本,并且对 foo.txt 的更改会反射(reflect)在控制台上的事件处理程序中。但是应该打印 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

最佳答案

我正在使用 vs code,我也遇到了你的问题

project.json 中,您有以下部分:

"scripts": {
"precompile": "gulp"
}

这将卡住 dotnet run

按照这些步骤如果你想启动 dotnet rungulp watch

第 1 步:在 task.json 文件中定义一个新任务:

 {
"type": "shell",
"command": "gulp watch",
"problemMatcher": [],
"label": "gulp-watch"
}

第二步:在launch.json中添加新的启动配置:

  {

"name": "gulp-watch",
"preLaunchTask": "gulp-watch",
"request": "launch",
"type": "node"
},

第三步:在launch.json中添加复合配置:

 "compounds": [{
"name": ".Net+gulp",
"configurations": [
"gulp-watch",
".NET Core Launch (web)"
]
}],

更多详情,请引用此链接https://code.visualstudio.com/docs/editor/debugging

关于c# - `gulp.watch` 阻塞执行 `dotnet run`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39148969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com