Pour apprendre la nouvelle syntaxe ES6, j'ai essayé de refactoriser du code JS.
Cependant, je suis absolument confus par toutes les méthodes d'importation/exportation.
Comment puis-je changer cette instruction require
en ES6?
var remote = require('electron').remote
J'ai vu cette réponse mais:
Des pensées?
Il semble que les importations ne soient pas implémentées dans Node 6 ou Chrome 51 donc Electron ne les prend également pas en charge, selon cet article: https://discuss.atom.io/t/does-electron-support-es6/19366/18
Et aussi le dernier doc électronique n'utilise pas les importations, ils utilisent la syntaxe de déstructuration :
const { BrowserWindow } = require('electron').remote
// or
const { remote } = require('electron')
const { BrowserWindow } = remote
http://electron.atom.io/docs/api/remote/
Mais vous pouvez utiliser babel avec le hook requis: http://babeljs.io/docs/usage/require/
Pour être compiler automatiquement chaque module requis afin que vous puissiez utiliser les importations. Bien sûr, le script donné à electron (celui qui nécessite babel) n'est pas compilé, vous devez donc faire un bootstrap:
// bootwithbabel.js
require("babel-register");
require( process.argv.splice(2) );
En coquille (sh):
electron bootwithbabel.js app.es
alias electrones="electron bootwithbabel.js "
electrones coron.es // ^^
Ensuite, dans votre application, vous pouvez alors écrire:
import electron from 'electron';
import { remote } from 'electron';
Vous pouvez également importer uniquement le module distant:
import { remote } from 'electron';
Mais vous ne pouvez importer les deux que dans une seule instruction:
import electron, { remote } from 'electron'
electron.ipcRenderer.on();
let win = new remote.BrowserWindow({width: 800, height: 600});
remote.getGlobal(name)
Cependant, je suis absolument confus par toutes les méthodes d'importation/exportation.
Mélanger différents systèmes de modules peut en effet prêter à confusion.
- Ça ne marche pas
const electron = require('electron');
const remote = electron.remote;
est exactement le même que ce que vous avez
var remote = require('electron').remote
Si le vôtre fonctionne, l'autre aussi. Cependant, je resterais simplement avec le vôtre.
- Cela ne semble pas vraiment être beaucoup ES6
On s'en fout? Node ne prend pas en charge ES6 imports
et exports
en mode natif et il n'est pas très clair comment les modules CommonJS doivent être mappés aux modules ES6. Je recommande de rester avec require
si vous écrivez uniquement pour Node de toute façon.
Vous pourriez essayer à faire
import electron from 'electron';
const {remote} = electron;