AlexTorresDev / custom-electron-titlebar

Custom electon title bar inpire on VS Code title bar
MIT License
862 stars 141 forks source link

unable to use path for icon in preload.js options #257

Open pjmdesi opened 4 months ago

pjmdesi commented 4 months ago

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.

HazelNutHoney commented 3 weeks ago

For me I just simply converted the path.join into a NativeImage and it worked

icon: nativeImage.createFromPath(path.join(__dirname, 'img/icon.png')),