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: es6 module import #3858

Merged
merged 3 commits into from
Aug 9, 2023

Conversation

ert78gb
Copy link
Contributor

@ert78gb ert78gb commented Aug 4, 2023

closes #3859

Thanks in advance for your contribution. Please follow the below steps in submitting a pull request, as it will help us with reviewing it quicker.

  • Create a new branch from master (e.g. features/my-new-feature or issue/123-my-bugfix);
  • If you're fixing a bug also create an issue if one doesn't exist yet;
  • If it's a new feature explain why do you think it's necessary. Please check with the maintainers beforehand to make sure it is something that we will accept. Usually we only accept new features if we feel that they will benefit the entire community;
  • Please avoid sending PRs which contain drastic or low level changes. If you are certain that the changes are needed, please discuss them beforehand and indicate what the impact will be;
  • If your change is based on existing functionality please consider refactoring first. Pull requests that duplicate code will most likely be ignored;
  • Do not include changes that are not related to the issue at hand;
  • Follow the same coding style with regards to spaces, semicolons, variable naming etc.;
  • Always add unit tests - PRs without tests are most of the times ignored.

@CLAassistant
Copy link

CLAassistant commented Aug 4, 2023

CLA assistant check
All committers have signed the CLA.

@ert78gb ert78gb force-pushed the fix-es6-module-loading branch from acf07fb to c0be5a8 Compare August 4, 2023 21:15
@github-actions
Copy link

github-actions bot commented Aug 7, 2023

Status

  • ❌ No modified files found in the types directory.
    Please make sure to include types for any changes you have made. Thank you!.

Copy link
Member

@garg3133 garg3133 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing module config to node16 adds ECMAScript support to TS, while still emitting CommonJS (provided type property in package.json is not set to module): https://www.typescriptlang.org/tsconfig#node16nodenext-nightly-builds

^ also changes the default value of moduleResolution to node16, which is the recommended way for Node.js v12+: https://www.typescriptlang.org/tsconfig#moduleResolution

Additional discussion on the issue solved by this PR: microsoft/TypeScript#43329

@garg3133
Copy link
Member

garg3133 commented Aug 7, 2023

The flaky test failing continuously in this PR is fixed in #3865.

Copy link
Member

@vaibhavsingh97 vaibhavsingh97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In microsoft/TypeScript#43329 (comment), the OP discusses a problem that could be caused by using a bundler. I tested this issue with vite-plugin-nightwatch as we currently using Vite, and found that it works without any problems. Since we are transpiling and distributing it, we are in a safe position, and the aforementioned problem does not affect us.

@garg3133
Copy link
Member

garg3133 commented Aug 9, 2023

As far as I understand from the issue linked in the comment shared above (especially the "Bundling with Webpack, esbuild, or Vite" section), the OP is talking about some discrepancy between how TypeScript and various bundlers resolve a package (being imported using require or import) when the package has exports property in its package.json like here (Bundlers always use import entry-point for import declarations and require entry-point for require calls but TypeScript might sometimes use require entry points for import declarations if the file is not explicitly scoped as ESM). But as Vaibhav mentioned, this will not affect us since we are not using a bundler directly in Nightwatch, and also not currently on ESM (so that discrepancy in TypeScript does not matter to us).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ES6 module import has been broken by #3774
6 participants