* build: replace eslint with oxlint and add oxfmt Replace ESLint and its plugin ecosystem with oxlint (oxc.rs). Add oxfmt alongside oxlint for JS/TS formatting and import sorting. - Consolidate root .eslintrc.json plus 13 nested configs into .oxlintrc.json - script/lint.js spawns oxlint binary directly instead of ESLint Node API - Per-process no-restricted-imports rules preserved as oxlintrc overrides - mocha/no-exclusive-tests replaced by in-repo plugin (no-only-tests.mjs) - docs ESLint pass replaced by inline node: protocol check in lint.js - .oxfmtrc.json matching repo style (single quotes, semicolons, 2-space) - yarn lint:fmt (oxfmt --check) chained into yarn lint - yarn format (oxfmt --write) for local fixup - lint-staged runs oxfmt --write on staged JS/TS files This commit contains only rule/tooling infrastructure changes and is intended to be cherry-picked to other maintenance branches, where formatting and lint fixes can be applied separately. Manual backport of electron/electron@e1af67c698 (#50691) and electron/electron@3c7fd34f47 (#50692). * chore: apply oxfmt formatting and oxlint fixes One-time application of the new linting and formatting rules to the 42-x-y codebase: - yarn format (oxfmt --write) over all JS/TS sources - oxlint --fix to restore curly braces where oxfmt removed them - Prefix unused parameters with _ (no-unused-vars) - Add eslint-disable-next-line comments for intentional patterns: - prefer-promise-reject-errors in desktop-capturer.ts - no-throw-literal in preload.ts Pure formatting and lint suppression; no behavioral changes. |
||
|---|---|---|
| .. | ||
| api | ||
| development | ||
| fiddles | ||
| images | ||
| tutorial | ||
| api-history.schema.json | ||
| breaking-changes.md | ||
| CLAUDE.md | ||
| experimental.md | ||
| faq.md | ||
| glossary.md | ||
| README.md | ||
| why-electron.md | ||
Official Guides
Please make sure that you use the documents that match your Electron version. The version number should be a part of the page URL. If it's not, you are probably using the documentation of a development branch which may contain API changes that are not compatible with your Electron version. To view older versions of the documentation, you can browse by tag on GitHub by opening the "Switch branches/tags" dropdown and selecting the tag that matches your version.
FAQ
There are questions that are asked quite often. Check this out before creating an issue:
Guides and Tutorials
Getting started
Learning the basics
- Adding Features to Your App
- Notifications
- Recent Documents
- Application Progress
- Custom Dock Menu
- Custom Windows Taskbar
- Custom Linux Desktop Actions
- Keyboard Shortcuts
- Offline/Online Detection
- Represented File for macOS BrowserWindows
- Native File Drag & Drop
- Navigation History
- Offscreen Rendering
- Dark Mode
- Web embeds in Electron
- Boilerplates and CLIs
Advanced steps
- Application Architecture
- Accessibility
- Testing and Debugging
- Distribution
- Updates
- Getting Support
Detailed Tutorials
These individual tutorials expand on topics discussed in the guide above.
- Installing Electron
- Electron Releases & Developer Feedback
API References
- Process Object
- Supported Command Line Switches
- Environment Variables
- Chrome Extensions Support
- Breaking API Changes
Custom Web Features:
Modules for the Main Process:
- app
- autoUpdater
- BaseWindow
- BrowserWindow
- contentTracing
- desktopCapturer
- dialog
- globalShortcut
- inAppPurchase
- ImageView
- ipcMain
- Menu
- MenuItem
- MessageChannelMain
- MessagePortMain
- nativeTheme
- net
- netLog
- Notification
- powerMonitor
- powerSaveBlocker
- protocol
- pushNotifications
- safeStorage
- screen
- ServiceWorkerMain
- session
- ShareMenu
- systemPreferences
- TouchBar
- Tray
- utilityProcess
- View
- webContents
- webFrameMain
- WebContentsView
Modules for the Renderer Process (Web Page):
Modules for Both Processes:
- clipboard (non-sandboxed renderers only)
- crashReporter
- nativeImage
- shell (non-sandboxed renderers only)