#javascript #gulp #eslint #gulp-eslint
Вопрос:
У меня есть эта задача глотка в моей gulpfile.js это выглядит так
const runeslint = (cb) => Promise.all(
gulp.src('./Scripts/**/*.ts')
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError())
).finally(cb);
Когда я запускаю его из командной строки с помощью gulp runeslint, я получаю красиво отформатированный набор сообщений об ошибках, но затем в конце он также печатает около 100 строк текста исключения. Текст выглядит как строковое представление исключения, которое было вызвано из-за ошибки, отмеченной eslint в моем машинописном тексте. Мне нужен хорошо отформатированный вывод ошибок. Я также хочу, чтобы поведение обработки ошибок при сбое было таким, чтобы, если runeslint используется в качестве одного шага в серии шагов, остальные шаги завершатся неудачно, если произошла ошибка компоновки. Единственное, чего я не хочу, — это чтобы gulp распечатал версию исключения tostring. Это бесполезно и полностью загромождает выходные журналы.
Я вижу в https://github.com/adametry/gulp-eslint/blob/master/index.js эта ошибка сбоя срабатывает, если обнаружены какие-либо ошибки. Но везде, где я пытаюсь подавить это исключение, оно либо нарушает поведение failAfterError, либо не устраняет ошибку при печати в моих журналах. Есть какие-нибудь предложения?
Я поместил полный вывод ошибки ниже, но я очистил некоторые материалы, относящиеся к конкретной компании. Видите, это даже загромождает этот пост 🙂
C:company-secret-stuffgulp runeslint
[09:44:46] Using gulpfile ~sourcereposcompany-secret-stuffgulpfile.js
[09:44:46] Starting 'runeslint'...
an error occurred
[09:44:46] Finished 'runeslint' after 64 ms
Warning: React version was set to "detect" in eslint-plugin-react settings, but the "react" package is not installed. Assuming latest React version for linting.
[09:44:49]
C:company-secret-stuffScriptsHelloWorld.ts
2:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
2:28 error Missing space before opening brace space-before-blocks
3:3 warning Unexpected console statement no-console
✖ 3 problems (1 error, 2 warnings)
1 error and 0 warnings potentially fixable with the `--fix` option.
events.js:292
throw er; // Unhandled 'error' event
^
<ref *1> [PluginError [ESLintError]: Failed with 1 error] {
plugin: 'gulp-eslint',
showProperties: true,
showStack: false,
__safety: { toString: [Function: bound ] },
domainEmitter: Transform {
_readableState: ReadableState {
objectMode: true,
highWaterMark: 16,
buffer: BufferList {
head: {
data: File {
stat: [Stats],
_contents: [Buffer [Uint8Array]],
history: [Array],
_cwd: 'C:\company-secret-stuff',
_base: 'C:\company-secret-stuff\Scripts',
_isVinyl: true,
_symlink: null,
eslint: [Object]
},
next: { data: [File], next: null }
},
tail: {
data: File {
stat: [Stats],
_contents: [Buffer [Uint8Array]],
history: [Array],
_cwd: C:\company-secret-stuff',
_base: 'C:\company-secret-stuff\Scripts',
_isVinyl: true,
_symlink: null,
eslint: [Object]
},
next: null
},
length: 2
},
length: 2,
pipes: [],
flowing: null,
ended: false,
endEmitted: false,
reading: true,
sync: false,
needReadable: true,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: true,
emitClose: true,
autoDestroy: true,
destroyed: true,
errored: [Circular *1],
closed: true,
closeEmitted: false,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
decoder: null,
encoding: null,
[Symbol(kPaused)]: null
},
_events: [Object: null prototype] { prefinish: [Function: prefinish] },
_eventsCount: 1,
_maxListeners: undefined,
_writableState: WritableState {
objectMode: true,
highWaterMark: 16,
finalCalled: false,
needDrain: false,
ending: true,
ended: true,
finished: false,
destroyed: true,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: null,
writelen: 0,
afterWriteTickInfo: null,
buffered: [],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 1,
prefinished: true,
errorEmitted: true,
emitClose: true,
autoDestroy: true,
errored: [Circular *1],
closed: true
},
allowHalfOpen: true,
_transform: [Function (anonymous)],
_flush: [Function (anonymous)],
[Symbol(kCapture)]: false,
[Symbol(kTransformState)]: {
afterTransform: [Function: bound afterTransform],
needTransform: true,
transforming: false,
writecb: null,
writechunk: null,
writeencoding: 'utf8'
}
},
domainThrown: false
}