Structure du répertoire du Code Source
Le code source d'Electron est séparé en plusieurs parties, principalement suivant les conventions de séparation de Chromium.
You may need to become familiar with Chromium's multi-process architecture to understand the source code better.
Structure du Code Source
Electron
── build/ - Construire les fichiers de configuration nécessaires pour construire avec GN.
── buildflags/ - Détermine l'ensemble des fonctionnalités qui peuvent être construites de manière conditionnelle.
── chromium_src/ - Code source copié à partir de Chromium qui ne fait pas partie de la couche de contenu.
── default_app/ - Une application par défaut exécutée lorsque Electron est démarré sans
| fournissant une application consommateur.
── docs/ - Documentation d'Electron.
| ── api/ - Documentation pour les modules et les API externes d'Electron.
| ── development/ - Documentation pour aider au développement pour et avec Electron.
| ── violondes/ - Un ensemble de snippets de code que l'on peut exécuter dans Electron Fiddle.
| ── images/ - Images utilisées dans la documentation.
| <unk> ─ tutorial/ - Documents de tutoriel pour divers aspects d'Electron.
├── lib/ - JavaScript/TypeScript source code.
| ── browser/ - Code d'initialisation du processus principal.
| | | ─ api/ - Implémentation d'API pour les modules de processus principaux.
| | <unk> ─ remote/ - Code relatif au module distant tel qu'il est
| | utilisé dans le processus principal.
| ── common/ - Relating to logic needed by both main and renderer process.
| | <unk> ─ api/ - Implémentation de l'API pour les modules qui peuvent être utilisés dans
| | | à la fois les processus principaux et les processus de rendu
| ── isoated_render/ - Permet la création de processus de rendu isolés lorsque
| | | contextIsolation est activée.
| ── render/ - Code d'initialisation du processus de rendu.
| | | ─ api/ - Implémentation d'API pour les modules de processus de rendu.
| | | ── extension/ - Code relatif à l'utilisation des extensions Chrome
| | | dans le processus de rendu d'Electron.
| | | ─ remote/ - Logique qui gère l'usage du module remote dans
| | | | le processus principal.
| | <unk> ─ web-view/ - Logique qui gère l'utilisation des webviews dans le processus
| | renderer.
| ── sandboxed_render/ - Logique qui gère la création du moteur de rendu en bac à sable
| | | processus.
| | <unk> ─ api/ - Implémentation de l'API pour les processus de rendu bac à sable.
| <unk> ─ worker/ - Logique qui gère les bonnes fonctionnalités de Node.js
| environnements dans les Web Workers.
── patches/ - Des correctifs appliqués au dessus des dépendances principales d'Electron
| | | afin de gérer les différences entre nos cas d'utilisation et
| | fonctionnalité par défaut.
| ── boringssl/ - Patchs appliqués au fork Google d'OpenSSL, BoringSSL.
| ── chromium/ - Patchs appliqués à Chromium.
| ── node/ - Patches appliqués au-dessus de Node.js.
| <unk> ─ v8/ - Patches appliqués au dessus du moteur V8 de Google.
── shell/ - Code source C++.
| ├── app/ - Code d'entrée du système.
| ├── browser/ - Le frontend incluent la fenêtre principale, l'UI et toutes les
| | | choses du processus principal. Ceci parle au moteur de rendu pour gérer le web
| | pages.
| | ├── ui/ - Implementation de l'UI pour différentes plateformes.
| | | ├── cocoa/ - Code Source spécifique à Cocoa.
| | | ├── win/ - Code source spécifique pour le GUI Windows.
| | | └── x/ - Code Source spécifique à X11.
| | ├── api/ - L'implementation des principales API de processus.
| | ├── net/ - Code lié au réseau.
| | ├── mac/ - Code Source Objective-C spécifique à MacOS.
| | └── resources/ - Icônes, fichiers dépendants de la plateforme, etc.
| ├── renderer/ - Code qui s'exécute dans le processus de rendu.
| | └── api/ - L'implementation des API de processus de rendu.
| <unk> ─ common/ - Code qui est utilisé à la fois par les processus principaux et les processus de rendu,
| | y compris quelques fonctions utilitaires et du code pour intégrer les nœuds
| | boucle message dans la boucle de message de Chromium.
| <unk> ─ api/ - Implémentation d'API communes, et fondations de
| Modules intégrés d'Electron.
├── spec/ - Les composants de tests d'Electron exécutant dans le processus principal.
<unk> ─ BUILD.gn - Règles de construction d'Electron.
Structure d'autres Dossiers
- .github - GitHub-specific config files including issues templates, CI with GitHub Actions and CODEOWNERS.
- dist - Dossier temporaire créé par
script/create-dist.py
lors de la création d'une distribution. - node_modules - Modules de Node tiers utilisés pour les builds.
- npm - Logique pour l'installation d'Electron via npm.
- out - Dossier de sortie temporaire de
ninja
. - script - Scripts utilisés à des fins de développement comme le build, le packaging, les tests, etc.
script/ - L'ensemble de tous les scripts que Electron exécute pour une variété de fonctions.
── codesign/ - Codesign Fakes pour les applications Electron ; utilisé pour les tests.
── lib/ - Divers scripts python.
<unk> ─ release/ - Scripts exécutés pendant le processus de publication d'Electron.
── notes/ - Génère des notes de publication pour les nouvelles versions d'Electron.
<unk> ─ ─ uploaders/ - Envoie divers fichiers liés à la version pendant la sortie.
- typings - Types TypeScript pour le code interne d'Electron.