2025-06-30 09:38:03 +08:00

51 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Frequently Asked Questions
## Why does the menubar appear when running in development mode, but disappear when packaged?
**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**](https://github.com/electron/electron-packager/issues/553#issuecomment-270805213):
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](https://electronjs.org/docs/api/menu/).
## Why isn't my `ignore` option working?
As stated in the documentation for [`ignore`](https://electron.github.io/electron-packager/main/interfaces/electronpackager.options.html#ignore), it uses "[one] or more additional
[regular expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)
patterns. […] Please note that [glob patterns](https://en.wikipedia.org/wiki/Glob_%28programming%29)
will not work."
## Why isn't the relative path in my app code working?
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:
```javascript
const path = require('path');
const jsonFilename = path.resolve(__dirname, '..', 'data', 'somedata.json');
console.log(require(jsonFilename));
```
## How do I set an icon on Linux?
The docs for [`icon`](https://electron.github.io/electron-packager/main/interfaces/electronpackager.options.html#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](https://github.com/electron/electron-packager#distributable-creators)
can help you set/distribute the appropriate icon in that case.