custom-electron-titlebar icon indicating copy to clipboard operation
custom-electron-titlebar copied to clipboard

unable to use path for icon in preload.js options

Open pjmdesi opened this issue 9 months ago • 1 comments

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.

pjmdesi avatar May 10 '24 22:05 pjmdesi

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

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

HazelNutHoney avatar Aug 24 '24 01:08 HazelNutHoney