gpt4 book ai didi

javascript - createWriteStream 后 gulp-open 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:01:12 27 4
gpt4 key购买 nike

我正在使用 gulp、gulp-eslint 和 gulp-open 创建 ESLint 结果报告。linting 和文件写入部分工作正常,但打开我编写报告的文件的任务却无法正常工作。

gulp.task('LintAll_Report_After', ['LintAll'], function () {
gulp.src('./_reports/eslint-html-result.html').pipe(open());
});

gulp.task('LintAll_Report', function () {
gulp.src('./_reports/eslint-html-result.html').pipe(open());
});

gulp.task('LintAll', function () {
gulp.src('./_reports/eslint-html-result.html').pipe(open());
var stream = gulp.src(filesToLintGlob)
.pipe(eslint())
.pipe(eslint.format('html', fs.createWriteStream('./_reports/eslint-html-result.html')));
//stream.on('finish', function () {
// console.log('finished');
// stream.end();
// setTimeout(function () {
// gulp.src('./_reports/eslint-html-result.html').pipe(open());
// }, 10000);
//});
return stream;
});
  • LintAll 对我的文件进行 lint 检测,然后将结果写入 html 文件。
  • LintAll_Report 在浏览器中打开我的报告。
  • LintAll_Report_After 据称会在完成 LintAll 任务后打开我的报告。

LintAll 工作正常。问题在于打开报告:LintAll_Report 可以工作,如果由其自身调用...但 LintAll_Report_After 不起作用。没有错误,在 Task Runner Explorer 控制台中,我什至看到行 [13:40:17] Opening C:\GITDEV\stiletto-online\_reports\eslint-html-result.html using the default OS app 就像 LintAll_Report 一样,但该文件未在浏览器中打开。

知道为什么会发生这种情况吗?我什至尝试通过绑定(bind)到事件来打开文件,但这也没有成功 - 我收到消息说它正在打开文件,但没有任何反应。这是评论的部分。甚至尝试使用或不使用 setTimeout,以及使用/不使用 stream.end() 进行调用

我的第一个猜测是它不会打开文件,因为它没有真正完成写入并且出现了问题,但事件绑定(bind)和超时证明了这一点。现在我真的一无所知了

编辑:我忘了添加:在 LintAll 中打开的初始调用也不起作用。删除调用不会改变结果。

EDIT2:我只是尝试安装不同版本的 NodeJS 并设置 VS,以便它使用我的自定义版本 - 但没有区别。

最佳答案

我找到了一种让它发挥作用的方法,但我不满意。

通过在文件顶部指定任务运行器资源管理器绑定(bind),首先使用 LintAll,然后使用 LintAll_Report,它似乎可以正常工作

/// <binding BeforeBuild='LintAll, LintAll_Report' />

但这感觉不是正确的方法,如果有人有更好的答案,我会很高兴听到。

关于javascript - createWriteStream 后 gulp-open 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45881997/

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