# Electron FAQ ## Quand est mise à jour la version de Chrome utilisée par Electron ? La version de Chrome qu'utilise Electron est en général mise à jour une ou deux semaines après la sortie d'une nouvelle version stable de Chrome. Etant donné que nous n'utilisons que les versions stables de Chrome, si un fix important est en beta ou en dev, nous l'intégrerons à la version que nous utilisons. ## Quand est mise à jour la version de Node.js utilisée par Electron ? Quand une nouvelle version de Node.js sort, nous attendons en général un mois avant de mettre à jour celle que nous utilisons dans Electron. Ceci afin d'éviter les bugs introduits par les nouvelles versions, ce qui arrive très souvent. Les nouvelles fonctionnalités de Node.js arrivant la plupart du temps via V8, et Electron utilisant le V8 du navigateur Chrome, la nouvelle fonctionnalité JavaScript de la nouvelle version de Node.js est bien souvent déjà dans Electron. ## La fenêtre/barre d'état de mon application disparait après quelques minutes. Cela se produit quand la variable qui est utilisée pour stocker la fenêtre/barre d'état est libérée par le ramasse-miettes. Nous vous recommandons de lire les articles suivants quand vous rencontrez le problème : * [Management de la Mémoire][memory-management] (Anglais) * [Portée d'une Variable][variable-scope] (Anglais) Si vous voulez corriger rapidement le problème, vous pouvez rendre les variables globales en changeant votre code de ça : ```javascript app.on('ready', function() { var tray = new Tray('/path/to/icon.png'); }) ``` à ça : ```javascript var tray = null; app.on('ready', function() { tray = new Tray('/path/to/icon.png'); }) ``` ## Je n'arrive pas à utiliser jQuery/RequireJS/Meteor/AngularJS dans Electron. A cause de l'intégration de Node.js dans Electron, certains mots-clés sont insérés dans la DOM, comme `module`, `exports`, `require`. Ceci pose des problèmes pour certaines bibliothèques qui utilisent les mêmes mots-clés. Pour résoudre ce problème, vous pouvez désactiver l'intégration de node dans Electron : ```javascript // Dans le processus principal. var mainWindow = new BrowserWindow({ webPreferences: { nodeIntegration: false } }); ``` Mais si vous voulez garder la possibilité d'utiliser Node.js et les APIs Electron, vous devez renommer les mots-clés dans la page avant d'inclure d'autres bibliothèques : ```html
``` ## `require('electron').xxx` is undefined. Lors de l'utilisation des modules d'Electron, vous pouvez avoir une erreur : ``` > require('electron').webFrame.setZoomFactor(1.0); Uncaught TypeError: Cannot read property 'setZoomLevel' of undefined ``` Ceci se produit quand vous avez le [module npm `electron`][electron-module] d'installé, soit en local ou en global, ce qui a pour effet d'écraser les modules de base d'Electron. Vous vérifiez que vous utilisez les bons modules, vous pouvez afficher le chemin du module `electron` : ```javascript console.log(require.resolve('electron')); ``` et vérifier si il est de la forme : ``` "/path/to/Electron.app/Contents/Resources/atom.asar/renderer/api/lib/exports/electron.js" ``` S'il est de la forme `node_modules/electron/index.js`, vous devez supprimer le module npm `electron`, ou le renommer. ```bash npm uninstall electron npm uninstall -g electron ``` Si vous utilisez le module de base mais que vous continuez d'avoir l'erreur, ça vient probablement du fait que vous utilisez le module dans le mauvais processus. Par exemple `electron.app` peut uniquement être utilisé dans le processus principal, tandis que `electron.webFrame` est uniquement disponible dans le processus d'affichage. [memory-management]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management [variable-scope]: https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx [electron-module]: https://www.npmjs.com/package/electron