Force noEmitOnError: false for the same reason we force noEmit: false
Fixes #254
Details
noEmitOnError: true acts like noEmit: true when there is an error
this is problematic because it will then cause all files to have emitSkipped set to true, which this plugin interprets as a fatal error
meaning it will treat the first file it finds as having a fatal error and then abort, but possibly without outputting any diagnostics what-so-ever as the file with the error in it may not yet have run through the transform hook
i.e. an initial file that imports an erroring file at some point in its import chain will cause rpt2 to abort, even if that initial file itself has no type-check/diagnostic issues
bc TS does whole-program analysis after all
this has only been reported as an issue once so far, probably because it defaults to false in TS and, as such, is rarely used
we usually have the opposite issue, people trying to set it to false (i.e. the default) because they don't realize the abortOnError option exists (c.f. #62 and its duplicates)
add noEmitOnError: false to the forced options list and tests too
add it to the docs on what tsconfig options are forced
and add a reference to the issue like the existing options
also reference abortOnError since they're commonly associated with each other and that plugin option is often missed (per above)
briefly explain that noEmit and noEmitOnError are false because Rollup controls emit settings in the context of this plugin, instead of tsc etc
should probably watch out for when new emit settings are added to TS, as we may want to force most with the same reasoning
Summary
Force
noEmitOnError: false
for the same reason we forcenoEmit: false
Details
noEmitOnError: true
acts likenoEmit: true
when there is an erroremitSkipped
set totrue
, which this plugin interprets as a fatal errortransform
hookthis has only been reported as an issue once so far, probably because it defaults to
false
in TS and, as such, is rarely usedfalse
(i.e. the default) because they don't realize theabortOnError
option exists (c.f. #62 and its duplicates)add
noEmitOnError: false
to the forced options list and tests tooadd it to the docs on what tsconfig options are forced
abortOnError
since they're commonly associated with each other and that plugin option is often missed (per above)briefly explain that
noEmit
andnoEmitOnError
arefalse
because Rollup controls emit settings in the context of this plugin, instead oftsc
etcCan see more details in my root cause analysis in https://github.com/ezolenko/rollup-plugin-typescript2/issues/254#issuecomment-1140503934
Related feature request: #168