Skip to content

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
@pkg-pr-new
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