如何防止 TypeScript/Vue 在构建时使用下划线重命名 类?

How to prevent TypeScript/Vue from renaming classes with underscore on build?

我的网络组件中有一个相当简单的 class:

import {WorkItem} from '@/model/WorkItem'
   
const Data = 'data'

class ReqItem extends WorkItem {
  constructor(
    id: string,
    name: string,
  ) {
    super(id, name, Data)
  }
}

export {Data, ReqItem}

问题是当 TypeScript/Vue 将整个东西构建到一个网络组件(命令:vue-cli-service build --target wc --name x)时,它将这个 class 重命名为 Filename_Classname,在这个案例是 ReqItem_ReqItem 像这样:

// CONCATENATED MODULE: ./src/model/ReqItem.ts

const Data = 'data'

class ReqItem_ReqItem extends WorkItem {
  constructor(id, name) {
    super(id, name, Data);
  }

}

为什么会发生这种情况,如何预防?一旦我删除 extends 问题就消失了。

编辑: 它越来越奇怪:当我放置 class 和 class 时,它会扩展(ReqItemWorkItem) 到一个文件中,问题就消失了。

问题出在 index.ts 上,看起来像这样:

.
.
export {WorkItem} from './WorkItem'
export {ReqItem} from './ReqItem'
.
.

改为

.
.
export * from './WorkItem'
export * from './ReqItem'
.
.

如所述here 解决了问题。