You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use a vue-property-decorator with @Component & export your class component as default.
Include the word "default" in a comment (for example).
Your component is not built correctly - in my reproduction example, the props are not initialized as an object. (you can see there is also no console warning related to someString).
Remove the word "default" from the comment & refresh the page - props will initialize correctly & you also have the expected console warning.
Looks very similar to several issues (such as this one & this one)
I expect my component to be built correctly & to not have a comment impacting the behavior of my component.
What is actually happening?
When inspecting the compiled code - it looks to me that the @Component decorator here is just completely stripped in the outputted code.
System Info
No response
Any additional comments?
Workaround for me, is to override @babel/parser for @vue/sfc-compiler to be 7.19.6 and the problem disappears.
Removing the exported const/type/interface/etc from the SFC works around the issue.
Moving the exported const/interface/type/etc below the class component also works around the issue.
This issue is not isolated to only comments, but rather the presence of default.
Meaning, code such as @Prop({ type: String, required: false, default: '' }) is also breaking - as the word default here has the same impact.
The text was updated successfully, but these errors were encountered:
andrewbrennanfr
changed the title
Using decorator before the word "default" breaks SFC compilation.
Using export & then using decorator before the word "default" breaks SFC compilation.
Jul 27, 2023
Vue version
2.7.14
Link to minimal reproduction
https://stackblitz.com/edit/vitejs-vite-bctp3t?file=src%2FApp.vue
Steps to reproduce
Export a const from a SFC.
Use a
vue-property-decorator
with@Component
& export your class component as default.Include the word "default" in a comment (for example).
Your component is not built correctly - in my reproduction example, the props are not initialized as an object. (you can see there is also no console warning related to
someString
).Remove the word "default" from the comment & refresh the page - props will initialize correctly & you also have the expected console warning.
Looks very similar to several issues (such as this one & this one)
Apparently this has been fixed here.
However it fails to work for me when
@babel/parser
is upgraded beyond7.19.6
🟢 Working use case with 7.19.6
🛑 Non-working use case with 7.20.0
What is expected?
I expect my component to be built correctly & to not have a comment impacting the behavior of my component.
What is actually happening?
When inspecting the compiled code - it looks to me that the
@Component
decorator here is just completely stripped in the outputted code.System Info
No response
Any additional comments?
Workaround for me, is to override
@babel/parser
for@vue/sfc-compiler
to be7.19.6
and the problem disappears.Removing the exported const/type/interface/etc from the SFC works around the issue.
Moving the exported const/interface/type/etc below the class component also works around the issue.
This issue is not isolated to only comments, but rather the presence of
default
.Meaning, code such as
@Prop({ type: String, required: false, default: '' })
is also breaking - as the worddefault
here has the same impact.The text was updated successfully, but these errors were encountered: