Note: as of Electron 5, the menubar always appears, so this question is not relevant to officially supported versions of Electron.
Based on a comment from @MarshallOfSound:
When you're running in "development mode" (for example, electron /path/to/app
), Electron uses the
default_app
codepath to run your app, which also provides a default menubar. When the app is
packaged, Electron runs your app directly. To have a menubar that's consistent between development
and packaged modes, you'll need to define it yourself.
As stated in the documentation for ignore
, it uses "[one] or more additional
regular expression
patterns. […] Please note that glob patterns
will not work."
To make a path work in both development and packaged mode, you'll need to generate a path based on the location of the JavaScript file that is referencing the file. For example, if you had an app structure like the following:
AppName
├── package.json
├── data
│ └── somedata.json
└── src
└── main.js
In src/main.js
, you would access data/somedata.json
similar to this:
const path = require('path');
const jsonFilename = path.resolve(__dirname, '..', 'data', 'somedata.json');
console.log(require(jsonFilename));
The docs for icon
already show how to set an icon on your BrowserWindow
, but your dock/taskbar may not use that and
instead use the Icon
value in your .desktop
file. The Linux distributable creators
can help you set/distribute the appropriate icon in that case.