Skip to content

fix(vue-jsx): replace export default defineComponent with babel #348

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

Merged
merged 4 commits into from
Jun 16, 2025

Conversation

OMGVecchio
Copy link
Contributor

@OMGVecchio OMGVecchio commented Jan 28, 2024

Description

if (hasDefault && (needHmr || ssr)) {
  result.code =
    result.code!.replace(
      /export default defineComponent/g,
      `const __default__ = defineComponent`,
    ) + `\nexport default __default__`
}

The code above will compile const str = 'export default defineComponent' unexpectedly in the development environment

We can achieve the same task with babel

Additional context

fixes #345

reproduction https://stackblitz.com/edit/vitejs-vite-rgsvev?file=src%2FApp.tsx

resolution https://stackblitz.com/~/github.com/OMGVecchio/vite-plugin-vue?file=demo/ExportDefault.jsx


What is the purpose of this pull request?

  • Bug fix
  • New Feature
  • Documentation update
  • Other

Before submitting the PR, please make sure you do the following

  • Read the Contributing Guidelines.
  • Read the Pull Request Guidelines and follow the PR Title Convention.
  • Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
  • Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
  • Ideally, include relevant tests that fail without this PR but pass with it.

@sapphi-red sapphi-red changed the title fix(plugin-vue-jsx): replace export default defineComponent with babel (fix #345) fix(vue-jsx): replace export default defineComponent with babel Jun 16, 2025
@sapphi-red sapphi-red added the p2-has-workaround 🍰 Bug, but has workaround (priority) label Jun 16, 2025
Copy link

pkg-pr-new bot commented Jun 16, 2025

Open in StackBlitz

npm i https://pkg.pr.new/@vitejs/plugin-vue@348
npm i https://pkg.pr.new/@vitejs/plugin-vue-jsx@348

commit: 8dc94be

@sapphi-red sapphi-red merged commit 5feb9a2 into vitejs:main Jun 16, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p2-has-workaround 🍰 Bug, but has workaround (priority)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The string "export default defineComponent" is being compiled abnormally
2 participants