【发布时间】:2018-01-11 12:33:29
【问题描述】:
我添加了一个 gulp 任务来删除给定路径中的目录。路径是从数组中读取的。 我的 gulp 任务运行正常并完成了所需的工作。 Task Runner 资源管理器给出启动任务的消息以及成功终止代码 0 的进程。问题是它没有说明任务已完成。因此,我的其他依赖于此任务的任务无法在构建过程自动化期间执行。
const rmr = require('rmr');
// array containing the list of all paths of the folders to be deleted
const removeFoldersArr = [
{
Path: "wwww/scripts"
},
{
Path: "www/styles"
}
];
// Gulp Task to remove all files in a folder
gulp.task('cleanFolders', function () {
return removeFoldersArr.map(function (folder) {
rmr.sync(folder.Path);
});
});
在 Task Runner Explorer 中,任务启动但未完成,虽然它以代码 0 终止,如下所示:
cmd.exe /c gulp -b "D:\My Projects\Solution1" --color --gulpfile "D:\My Projects\Solution1\Gulpfile.js" cleanFolders
[18:04:23] Using gulpfile D:\My Projects\Solution1\Gulpfile.js
[18:04:23] Starting 'cleanFolders'...
Process terminated with code 0.
【问题讨论】:
-
如何将return语句移动到:return rmr.sync(folder.Path);
-
也试过了。没区别!
-
我会说你想要的是 forEach() 而不是 map()。 map() 返回一个您不感兴趣的数组,您只想为每个数组项运行一个函数。 [你并不真的需要数组中的每个项目都是一个对象,它们可能只是字符串本身,除非你在这些对象中除了 Path 之外还有其他东西。]
-
使用 forEach() 代替 map() 也没有区别。该进程仍然终止而不调用finish。
-
您使用的是
visual-studio-2015标签,但不清楚您的问题与您的问题有何关联。这个gulp问题是否仅在使用 vs vode 调试器运行时发生?
标签: javascript visual-studio-2015 gulp