A new major version of Electron is in the works, and with it some changes to our versioning strategy. As of version 2.0.0, Electron will strictly adhere to Semantic Versioning.
This change means you'll see the major version bump more often, and it will usually be a major update to Chromium. Patch releases will also be more stable, as they will now only contain bug fixes with no new features.
Incréments de version Majeure
mises à jour de version Chromium
Mises à jour de la version majeure de Node.js
changement Electron qui altère l'API
Incréments de version mineure
Mises à jour mineure de la version de Node.js
changement Electron n'altérant pas l'API
Incréments de version de Correctifs
Mises à jour des correctifs de Node.js
mises à jour de correctifs Chromium
Corrections de bugs d'Electron
Because Electron's semver ranges will now be more meaningful, we recommend installing Electron using npm's default --save-dev flag, which will prefix your version with ^, keeping you safely up to date with minor and patch updates:
npm install --save-dev electron
For developers interested only in bug fixes, you should use the tilde semver prefix e.g. ~2.0.0, which which will never introduce new features, only fixes to improve stability.
Au cours des deux dernières années, Electron a aidé des développeurs à créer des applications de bureau multiplateformes en utilisant HTML, CSS et JavaScript. Maintenant, nous sommes ravis de partager une étape majeure pour notre framework et pour la communauté qui l'a créé. La version d'Electron 1.0 est maintenant disponible sur electronjs.org.
Electron 1.0 représente un jalon majeur dans la stabilité et la maturité de l'API. Cette version vous permet de construire des applications qui agissent et se sentent vraiment natives sur Windows, Mac, et Linux. Construire des applications Electron est plus facile que jamais avec de nouvelles documentations, nouveaux outils et une nouvelle application pour vous guider à travers les API Electron.
Si vous êtes prêt à construire votre toute première application Electron, voici un guide de démarrage rapide pour vous aider à démarrer.
Nous sommes heureux de voir ce que vous construisez ensuite avec Electron.
Nous avons libéré Electron lorsque nous avons lancé Atom il y a un peu plus de deux ans. Electron, alors connu sous le nom de Atom Shell, était le framework que nous avions construit sur Atom. À cette époque, Atom était la force motrice derrière les fonctionnements et les fonctionnalités qu'Electron a fourni en même temps que nous avons poussé à sortir la version initiale de Atom.
Au cours de ces deux dernières années, nous avons vu à la fois des entreprises et des projets open source choisir Electron comme base pour leurs applications. Juste au cours de l'année écoulée, Electron a été téléchargé plus de 1,2 million de fois. Faites une visite de quelques des incroyables applications Electron et ajoutez vos propres applications si elles ne sont pas déjà là.
Along with the 1.0 release, we're releasing a new app to help you explore the Electron APIs and learn more about how to make your Electron app feel native. L'application Electron API Demos contient des extraits de code pour vous aider à démarrer votre application et des conseils sur l'utilisation efficace des API Electron.
We've also added a new extension to help you debug your Electron apps. Devtron est une extension open-source pour les outils de développement Chrome conçue pour vous aider à inspecter, débogage, et dépannage de votre application Electron.
Require graph that helps you visualize your app's internal and external library dependencies in both the main and renderer processes
IPC monitor that tracks and displays the messages sent and received between the processes in your app
Event inspector that shows you the events and listeners that are registered in your app on the core Electron APIs such as the window, app, and processes
App Linter that checks your apps for common mistakes and missing functionality
Enfin, nous publions une nouvelle version de Spectron, le framework de test d'intégration pour les applications Electron.
Spectron 3.0 has comprehensive support for the entire Electron API allowing you to more quickly write tests that verify your application's behavior in various scenarios and environments. Spectron est basé sur ChromeDriver et WebDriverIO donc il a également des API complètes pour la navigation de page, utilisateur entrée, et l'exécution JavaScript.
Electron 1.0 is the result of a community effort by hundreds of developers. Outside of the core framework, there have been hundreds of libraries and tools released to make building, packaging, and deploying Electron apps easier.
Il y a maintenant une nouvelle page communauté qui répertorie de nombreux outils Electron, applications, bibliothèques et frameworks en cours de développement. Vous pouvez également consulter les organisations Electron et Electron Userland pour voir certains de ces projets fantastiques.
New to Electron? Regardez la vidéo d'intro d'Electron 1.0 :
Electron 0.37 was recently released and included a major upgrade from Chrome 47 to Chrome 49 and also several new core APIs. This latest release brings in all the new features shipped in Chrome 48 and Chrome 49. This includes CSS custom properties, increased ES6 support, KeyboardEvent improvements, Promise improvements, and many other new features now available in your Electron app.
Si vous avez utilisé des langages prétraités comme Sass et Less, vous êtes probablement familier avec les variables __, qui vous permettent de définir des valeurs réutilisables pour des choses comme les modèles de couleurs et les mises en page. Variables help keep your stylesheets DRY and more maintainable.
CSS custom properties are similar to preprocessed variables in that they are reusable, but they also have a unique quality that makes them even more powerful and flexible: they can be manipulated with JavaScript. Cette fonctionnalité subtile mais puissante permet des changements dynamiques aux interfaces visuelles tout en profitant de l'accélération matérielle du CSS, et réduit la duplication de code entre votre code frontend et vos feuilles de style.
La valeur de la variable peut être récupérée et modifiée directement en JavaScript :
// Get the variable value ' #A5ECFA' let color =window .getComputedStyle(document.body) .getPropertyValue('--awesome-color'); // Set the variable value to 'orange' document.body.style.setProperty('--awesome-color','orange');
Les valeurs de la variable peuvent également être modifiées à partir de la section Styles des outils de développement pour un feedback rapide et des ajustements :
Chrome 48 added the new code property available on KeyboardEvent events that will be the physical key pressed independent of the operating system keyboard layout.
This should make implementing custom keyboard shortcuts in your Electron app more accurate and consistent across machines and configurations.
window.addEventListener('keydown',function(event){ console.log(`${event.code} was pressed.`); });
La version de V8 maintenant dans Electron incorpore 91 % de ES2015. Voici quelques ajouts intéressants que vous pouvez utiliser sans options ni pré-compilateurs :
// Destructuring an array and skipping the second element const[first,, last]=findAll(); // Destructuring function parameters functionwhois({displayName: displayName,fullName:{firstName: name }}){ console.log(`${displayName} is ${name}`); } let user ={ displayName:'jdoe', fullName:{ firstName:'John', lastName:'Doe', }, }; whois(user);// "jdoe is John" // Destructuring an object let{ name, avatar }=getUser();
Since the beginning of Electron, starting way back when it used to be called Atom-Shell, we have been experimenting with providing a nice cross-platform JavaScript API for Chromium's content module and native GUI components. The APIs started very organically, and over time we have made several changes to improve the initial designs.
Now with Electron gearing up for a 1.0 release, we'd like to take the opportunity for change by addressing the last niggling API details. The changes described below are included in 0.35.x, with the old APIs reporting deprecation warnings so you can get up to date for the future 1.0 release. An Electron 1.0 won't be out for a few months so you have some time before these changes become breaking.
Par défaut, des avertissements s'afficheront si vous utilisez des API obsolètes. To turn them off you can set process.noDeprecation to true. To track the sources of deprecated API usages, you can set process.throwDeprecation to true to throw exceptions instead of printing warnings, or set process.traceDeprecation to true to print the traces of the deprecations.
Les modules intégrés sont maintenant regroupés en un seul module, au lieu d'être séparés en modules indépendants, pour que vous puissiez les utiliser sans conflits avec d'autres modules :
var app =require('electron').app; varBrowserWindow=require('electron').BrowserWindow;
The old way of require('app') is still supported for backward compatibility, but you can also turn if off:
Because of the way using built-in modules has changed, we have made it easier to use main-process-side modules in renderer process. You can now just access remote's attributes to use them:
// New way. var app =require('electron').remote.app; varBrowserWindow=require('electron').remote.BrowserWindow;
Instead of using a long require chain:
// Old way. var app =require('electron').remote.require('app'); varBrowserWindow=require('electron').remote.require('BrowserWindow');
The ipc module existed on both the main process and renderer process and the API was different on each side, which is quite confusing for new users. We have renamed the module to ipcMain in the main process, and ipcRenderer in the renderer process to avoid confusion:
// Dans le processus principal . var ipcMain =require('electron').ipcMain;
// In renderer process. var ipcRenderer =require('electron').ipcRenderer;
And for the ipcRenderer module, an extra event object has been added when receiving messages, to match how messages are handled in ipcMain modules:
The BrowserWindow options had different styles based on the options of other APIs, and were a bit hard to use in JavaScript because of the - in the names. They are now standardized to the traditional JavaScript names:
The API names in Electron used to prefer camelCase for all API names, like Url to URL, but the DOM has its own conventions, and they prefer URL to Url, while using Id instead of ID. We have done the following API renames to match the DOM's styles:
Url is renamed to URL
Csp is renamed to CSP
You will notice lots of deprecations when using Electron v0.35.0 for your app because of these changes. An easy way to fix them is to replace all instances of Url with URL.
Nous avons restructuré et normalisé la documentation pour qu'elle soit plus attrayante et plus lisible. Il existe également des traductions de la documentation fournies par la communauté, comme le japonais et le coréen.
Un correctif par @jaanus a été fusionné qui, comme les autres applications OS X intégrées, permet de créer des fenêtres sans cadre avec le système de feux de circulation intégré sur OS X Yosemite et les versions ultérieures.
Après le Google Summer of Code nous avons fusionné des correctifs de @hokein pour améliorer le support de l'impression et ajoutez la possibilité d'imprimer la page dans des fichiers PDF.
Amy Palamountain, membre de GitHubber, a présenté une excellente introduction à Electron lors d'une conférence à Nordic.js. Elle a également créé la bibliothèque electron-accelerator.
Créer des applications natives avec Electron par Amy Palomountain
Ben OgleBen Ogle, qui fait également partie de l'équipe Atom, a donné une conférence sur Electron à YAPC Asia :
Création d'Applications de Bureau avec les Technologies Web par Ben Ogle
Un membre de l'équipe Atom Kevin Sawicki et d'autres personnes ont récemment donné des conférences sur Electron lors de la réunion Bay Are Electron User Group. Les vidéos ont été postées, en voici quelques-unes :