-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Opinionated TS transpilation without overrides is problematic #7575
Comments
I did move it, but this option was already there https://github.com/cypress-io/cypress/pull/7197/files#diff-0f01b0186fbd767d98bd689a60ddd05aL193 I do wonder if we really need it or not, and if we should overwrite it from the user's TS config |
I feel quite strongly that enforcing this is a mistake on Cypress' part, though I can see why it was done. Haven't quite had time yet to put up a minimal repro, though it seems that my intent is at least understandable without it, for now. Is this something I should put up a PR for? I don't know how accessible this is a Cypress newcomer, though I can see you've got a lot going on 😅 and I'm happy to give it a go. |
@sainthkh do you remember why you have set |
It was mainly because I misunderstood the default behavior of tsnode. I thought it would load tsconfig.json from Cypress internal ones. But I was wrong. Maybe I was more familiar with But removing it would break some test setups with no |
The only block for me is to decide if it's a breaking change or a bug. If it's a bug, it can be fixed immediately. If it's a breaking change, we need to wait for 5.0. |
@robcresswell Can you provided a reproducible example of this? We're looking into changing this default for 5.0, but I can't create a case where |
@chrisbreiding I've pushed an example to https://github.com/robcresswell/cypress-example Let me know if you have any difficulties; there's an explanation in the README. |
The code for this is done in cypress-io/cypress#8143, but has yet to be released. |
Released in This comment thread has been locked. If you are still experiencing this issue after upgrading to |
Current behavior:
Cypress recently added better native support for TypeScript, a great step forward, thanks!
However, part of this process added the following defaults for
ts-node
:cypress/packages/server/lib/util/ts-node-options.js
Line 13 in bdcfe42
Specifically,
esModuleInterop
is problematic. This is an opinionated transpilation, and cannot be overridden. Typically when working working with a JS / TS mix, you can either use imports such asor you can enable
esModuleInterop
and doIn my case, I chose the former, to reduce the "magic" that is done by the TypeScript compiler; however, because Cypress enforces the latter, I get lots of errors along the lines of
Desired behavior:
A test frameworks authors should not enforce an opinion about how I build my application; this
esModuleInterop
value should be possible to override. I tried manually changing it by editing the downloaded Cypress JS code in~/.cache
, and the tests ran as expected.Test code to reproduce
Working on a minimal reproduction, please give me a bit of time 😄
Versions
Cypress: 4.7.0
The text was updated successfully, but these errors were encountered: