У меня есть проект со следующей файловой структурой
src/
main/
index.ts
preload/
index.ts
renderer/
index.ts
index.html
build/
main.js
preload.js
renderer.js
index.html
У меня есть следующий файл объявлений:
declare global {
interface Window {
myIpcRenderer?: MyIpcRenderer;
}
}
export interface MyIpcRenderer {
invoke(channel: string, ...args: any[]): Promise<any>;
send(channel: string, ...args: any[]): void;
on(channel: string, listener: (...args: any[]) => void): () => void;
}
Я установил свойство myIpcRenderer
в окне в сценарии предварительной загрузки :
contextBridge.exposeInMainWorld("myIpcRenderer", {
invoke: (channel: string, ...args: any[]) =>
callIpcRenderer("invoke", channel, ...args),
send: (channel: string, ...args: any[]) =>
callIpcRenderer("send", channel, ...args),
on: (channel: string, ...args: any[]) =>
callIpcRenderer("on", channel, ...args),
});
Каким-то образом это вызывает следующую ошибку времени выполнения tslib:
tslib.es6.js:1 Uncaught SyntaxError: Identifier 'myIpcRenderer' has already been declared
Я использую накопительный пакет в качестве сборщика и выводю модули es.
Что есть решение для этого?