custom-electron-titlebar
custom-electron-titlebar copied to clipboard
unable to use path for icon in preload.js options
Problem Description
I get the following error while building (for either dev or production) when trying to use node:path in the preload.js file to load the icon for the custom title bar.
Module build failed: UnhandledSchemeError: Reading from "node:path" is not handled by plugins (Unhandled scheme). Webpack supports "data:" and "file:" URIs by default.
Steps to Reproduce
My code:
const path = require('node:path');
const options = {
backgroundColor: TitlebarColor.fromHex('#0000'),
itemBackgroundColor: TitlebarColor.fromHex('#08162F'),
containerOverflow: 'hidden',
icon: path.join(__dirname, 'assets/images', 'app-icon.png'),
};
Expected Behavior
Icon loads properly in production. Using path does not break the plugin.
Current Behavior
Using path in the icon directory option breaks the plugin and makes builds fail
Additional Information
Using the following hard-coded object property works for dev, but not production:
icon: './assets/images/window-icon.png',
I'm using React BTW.
For me I just simply converted the path.join into a NativeImage and it worked
icon: nativeImage.createFromPath(path.join(__dirname, 'img/icon.png')),