Для тех, кто может столкнуться с этим вопросом в будущем с той же проблемой, я решил ее, используя:
ESM: модули ECMAScript завтра! .
Далее я реструктурировал свой код так, чтобы файл констант, которым я делюсь между Основным процессом и Процессом рендеринга , теперь находился в моей папке ./build
с файлами Main Process .
Структура проекта:
root
│
├── build (main process)
│ ├── js
│ │ ├── main
│ │ │ ├── mainElectronESM.js
│ │ │ └── mainElectron.js
│ │ └── support
│ │ └── constants.js
│ └── package.json
│
├── source (render process)
│ └── js
│ └── index.js
│
└── package.json
constants.js
export {
Location,
People,
};
const Location = {
COUNTRY: "Canada",
CITY: "Montreal"
};
const People = {
OWNER: "Mr. Owner",
MANAGER: "Mrs. Manager",
DEVELOPER: "Mr. Developer",
};
mainElectronESM.js (основной процесс, узел CJS)
require = require("esm")(module);
module.exports = require("./mainElectron.js");
mainElectron.js (основной процесс, узел ESM)
import { app } from "electron";
import * as C from "../support/constants.js";
app.on("ready", () => {
console.log(`${C.People.DEVELOPER} lives in ${C.Location.CITY}`);
});
index.js (Render Process, Web ESM)
import * as C from "../../build/js/support/constants.js";
console.log(`${C.People.DEVELOPER} lives in ${C.Location.CITY}`);