Aller au contenu principal

Aperçu du Système de compilation

Electron utilise GN pour la génération de projet et ninja pour la construction. Les configurations du projet peuvent être trouvées dans les fichiers .gn et .gni .

Fichiers GN

Les fichiers gn suivants contiennent les règles principales pour la construction d'Electron :

  • BUILD.gn définit comment Electron lui-même est construit et inclut les configurations par défaut pour se connecter avec Chromium.
  • build/args/{debug,release,all}.gn contient les arguments de construction par défaut pour compilant Electron.

Component Build

Étant donné que Chrome est un sacré gros projet, la dernière étape de reliage (linking) peut prendre quelques minutes, ce qui rend le développement difficile. Afin de résoudre ce problème, Chrome a introduit le « component build », qui compile chaque composant comme une bibliothèque partagée distincte, faisant le lien très rapidement mais sacrifie la taille de fichier et la performance.

Electron hérite de cette option de compilation de Chromium. Dans les versions Debug, le binaire sera lié à une version partagée de la bibliothèque des composants de Chromium pour obtenir un temps de liaison rapide ; pour les versions Release, le binaire sera lié à les versions statiques de la bibliothèque, pour que nous puissions avoir la meilleure taille binaire possible et les meilleures performances .

Tests

NB cette section est obsolète et contient des informations qui ne sont plus pertinentes pour l'électronique GN.

Pour tester que vos changements soient conforme avec le code style du projet :

$ npm run lint

Pour tester les fonctionnalités :

$ npm test

Chaque fois que vous apportez des modifications au code source d'Electron, vous devez ré-exécuter la compilation avant les tests :

$ npm run build && npm test

Vous pouvez rendre la suite de tests plus rapide en isolant le test spécifique ou bloc que vous travaillez actuellement à l’aide de la fonctionnalité tests exclusifs de Mocha. Ajoutez .only pour chaque appel aux fonctions describe ou it:

describe.only('some feature', () => {
// ... Seuls les tests de ce bloc seront exécutés
})

Alternativement, vous pouvez utiliser l'option grep de Mocha pour exécuter uniquement les tests correspondant au modèle d’expression régulière donnée :

$ npm test -- --grep child_process

Les tests qui incluent des modules natifs (par exemple runas) ne peuvent être exécutées avec le débogage (voir #2558 pour plus de détails), mais ils fonctionneront avec la version Release.

Pour exécuter les tests avec le build release :

$ npm test -- -R