Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cjsModuleRunnerPlugin transforms cjs with require("some-package") incorrectly when "some-package" exports esm #904

Closed
@hi-ogawa

Description

Related #903

It's likely what's happening is that there is cjs code

const _interop_require_default = require("@swc/helpers/_/_interop_require_default");

which cjsModuleRunnerPlugin transforms into:

const _interop_require_default = (await import("@swc/helpers/_/_interop_require_default")).default;

which then in turn vite import analysis resolves as esm:

const _interop_require_default = (await import(".../@swc/helpers/esm/_interop_require_default.js")).default;
// then eventually module runner transform changes:
// import -> __vite_ssr_dynamic_import__

Either we have to do:

  • if we know package (in this case @swc/helpers/...) has esm variant, then we should omit default when transforming from require to `import.
  • Or we somehow instruct Vite import analysis to resolve it to cjs version of package. (this doesn't sound possible)

  • Or we check during runtime checkIfItShouldPickDefaultOrNot(await import("...")) based on some heuristics.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /