vite-plugin-vue2 icon indicating copy to clipboard operation
vite-plugin-vue2 copied to clipboard

Using vue-property-decorator and "default" string causes error

Open rs3d opened this issue 2 years ago • 2 comments

Hi,

I'm experiencing a strange issue. Whenever I use default as class prop or even as a string like defaultSomething in a JS-comment in my .vue-files, the following error shows up:

Error:

10:57:46 AM [vite] Internal server error: Cannot overwrite across a split point
  Plugin: vite:vue2
  File: app/src/components/Form/FormStepProgress.vue
      at MagicString.overwrite (\app\node_modules\@vue\compiler-sfc\dist\compiler-sfc.js:2362:11)
      at \app\node_modules\@vue\compiler-sfc\dist\compiler-sfc.js:8182:15
      at Array.forEach (<anonymous>)
      at Object.rewriteDefault (\app\node_modules\@vue\compiler-sfc\dist\compiler-sfc.js:8180:9)
      at genScriptCode (\app\node_modules\@vitejs\plugin-vue2\dist\index.cjs:2993:37)
      at transformMain (\app\node_modules\@vitejs\plugin-vue2\dist\index.cjs:2911:54)
      at TransformContext.transform (\app\node_modules\@vitejs\plugin-vue2\dist\index.cjs:3248:16)
      at Object.transform (file:///app/node_modules/vite/dist/node/chunks/dep-1513d487.js:35277:53)
      at async loadAndTransform (file:///app/node_modules/vite/dist/node/chunks/dep-1513d487.js:39776:29)

Deps:

on Windows@11

Update

DEMO: https://stackblitz.com/edit/vue2-vite-starter-gkrjjz?file=src/components/Test.vue Exporting an interface in combination with the string 'defaultXXX' inside a comment shows the error.

I assume that this line is causing the error: at genScriptCode (\app\node_modules\@vitejs\plugin-vue2\dist\index.cjs:2993:37) Code scriptCode = options.compiler.rewriteDefault(script.content, "_sfc_main", [...defaultPlugins, ...userPlugins]);

rs3d avatar Jul 20 '22 09:07 rs3d

+1

ammartinCIC avatar Jul 21 '22 11:07 ammartinCIC

Also happening for me, but with Vite version v2.9.14, and Vue version v2.7.8.

ZeroThe2nd avatar Jul 28 '22 21:07 ZeroThe2nd

I can also reproduce this on

  • Vue 2.7.8
  • Vite 3.0.7
  • @vitejs/plugin-vue2 1.1.2

Seems to be related to

  • https://github.com/vuejs/core/pull/6320

as when moving the default export [className] after the class declaration, everything works nicely.

CreMindES avatar Aug 15 '22 10:08 CreMindES

After updating to [email protected] the issue is gone: https://stackblitz.com/edit/vue2-vite-starter-th6fyw?file=package.json

@CreMindES This might had fixed it in 2.7.9 according to the changelog: https://github.com/vuejs/vue/pull/12747

rs3d avatar Sep 07 '22 08:09 rs3d