如何防止 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 时,它会扩展(ReqItem
和 WorkItem
) 到一个文件中,问题就消失了。
问题出在 index.ts
上,看起来像这样:
.
.
export {WorkItem} from './WorkItem'
export {ReqItem} from './ReqItem'
.
.
改为
.
.
export * from './WorkItem'
export * from './ReqItem'
.
.
如所述here 解决了问题。
我的网络组件中有一个相当简单的 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 时,它会扩展(ReqItem
和 WorkItem
) 到一个文件中,问题就消失了。
问题出在 index.ts
上,看起来像这样:
.
.
export {WorkItem} from './WorkItem'
export {ReqItem} from './ReqItem'
.
.
改为
.
.
export * from './WorkItem'
export * from './ReqItem'
.
.
如所述here 解决了问题。