vue+ts 使用vue-class-component写组件打包后组件的name属性发生了变化!

使用的是vue全家桶+typescript+electron开发的项目

layout.vue
clipboard.png

开发环境
开发环境下控制台截图

生产环境
生产环境下控制台截图

感觉应该是打包的时候把代码压缩了,顺便把name值也给压缩了...以前写name没什么问题,但是上了ts,name就出现了问题。有知道怎么解决的吗?组件的name字段在本项目中有很重要的作用,其他代替的方案也有,但是比较麻烦,许多代码需要重构!

阅读 11.9k
4 个回答

在这里加上name属性就可以了clipboard.png

我是注册全局组件的时候遇到了这个问题,导致打包后自定义的全局组件都没有渲染出来。这时候组件还没有实例化,获取不到$options,后来通过设置一个静态属性的名称解决了,这个名称任何时候都能获取到:

export default class CompGrid extends Vue {
  static ComponentName = 'comp-grid';
}

需要用的时候:

Vue.component(CompGrid.ComponentName, CompGrid);

Jyx的component.options.name更优解

新手上路,请多包涵
新手上路,请多包涵

请问一下, 打包出来的组件体积过大, 该怎么解决 ?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题