Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: force noEmitOnError: false #338

Merged
merged 1 commit into from
Jun 1, 2022

Commits on Jun 1, 2022

  1. fix: force noEmitOnError: false

    - `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:
      https://www.typescriptlang.org/tsconfig#noEmitOnError
      - 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
    
    - 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
    agilgur5 committed Jun 1, 2022
    Configuration menu
    Copy the full SHA
    0604591 View commit details
    Browse the repository at this point in the history