gpt4 book ai didi

visual-studio-2015 - gulp sass.logError 在 Visual Studio 任务运行程序中不起作用

转载 作者:行者123 更新时间:2023-12-04 18:03:31 28 4
gpt4 key购买 nike

考虑以下代码:

var gulp = require('gulp');
var sass = require('gulp-sass');
var gdebug = require('gulp-debug');

module.exports = function (sourcedir, targetDir, directTarget)
{
return function ()
{
var source = directTarget != null ? directTarget : sourcedir + '/**/*.scss';

return gulp.src(source, { base: sourcedir })
.pipe(sass({ includePaths: [`${sourcedir}/**/`] }).on('error', sass.logError))
.pipe(gulp.dest(targetDir))
.pipe(gdebug());
}
}

在 Visual Studio 任务运行器中运行它时,sass 编译中的所有错误都被完全隐藏。如果我用一个简单的 function(e){console.log(e)} 替换 sass.logError ,错误事件按预期记录。

我很确定这在以前可以正常工作,我最近才注意到我有一些 scss 文件无法编译。可能发生了什么?

最佳答案

亚历克斯,

我们今天遇到了完全相同的问题,正在寻找替代方案。结果是 sass.logError函数不会将错误传递回 gulp系统,但到 'process.stderr.write(message + '\n');'

这是在 index.js 中找到的路径下的文件。
\\Project\nodule_modules\gulp-saas\index.js\
该函数在第 170 行 (apx) 上定义为。

//////////////////////////////
// Log errors nicely
//////////////////////////////
gulpSass.logError = function logError(error) {
var message = new gutil.PluginError('sass', error.messageFormatted).toString();
process.stderr.write(message + '\n');
this.emit('end');
};

作为解决方法,我修改了文件以打印到 gutil.log方法,该方法又传递到 Visual Studio 中的控制台。

首先,您需要在文件顶部(与其余部分)输入一个 require 条目(这只会产生漂亮的颜色)
var chalk = require('chalk');
然后修改 logError 如下。
//////////////////////////////
// Log errors nicely
//////////////////////////////
gulpSass.logError = function logError(error) {
gutil.log('Error', chalk.red('Uncaught error while processing task ') + '\'' + chalk.cyan('saas') + chalk.red('\'.'));
gutil.log('Message', error.formatted);
this.emit('end');
};

您将看到控制台打印了两行,第一行是一条通用消息(红色以引起您的注意),然后是消息。
传入的对象 error是具有以下属性的标准 Javascript 对象。
{
"formatted":
"message":,
"column":,
"line":,
"file":,
"status":,
"messageFormatted":,
"stack":,
"showProperties":,
"plugin":
}

这是一个示例结果。

example of gulp-error message in Visual Studio

关于visual-studio-2015 - gulp sass.logError 在 Visual Studio 任务运行程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37703914/

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