新しいES6構文を学ぶために、JSコードのリファクタリングを試みてきました。
全体のインポート/エクスポート方法によって私は絶対に混乱しています。
このrequire
ステートメントをES6に変更するにはどうすればよいですか?
var remote = require('electron').remote
私は見ました この答え しかし:
何かご意見は?
インポートは実装されていないようですNode 6またはChrome 51 、この投稿によると: https://discuss.atom.io/t/does-electron-support-es6/19366/18
また、最後のエレクトロンドキュメントはインポートを使用せず、destructuring構文を使用します。
const { BrowserWindow } = require('electron').remote
// or
const { remote } = require('electron')
const { BrowserWindow } = remote
http://electron.atom.io/docs/api/remote/
ただし、requireフックでbabelを使用できます。 http://babeljs.io/docs/usage/require/
インポートを使用できるように、必要な各モジュールを自動コンパイルします。もちろん、electron(babelを必要とするもの)に与えられたスクリプトはコンパイルされないため、ブートストラップを作成する必要があります。
// bootwithbabel.js
require("babel-register");
require( process.argv.splice(2) );
シェル(sh)の場合:
electron bootwithbabel.js app.es
alias electrones="electron bootwithbabel.js "
electrones coron.es // ^^
次に、アプリで次のように記述できます。
import electron from 'electron';
import { remote } from 'electron';
リモートモジュールのみをインポートすることもできます。
import { remote } from 'electron';
ただし、1つのステートメントで両方のみをインポートできます。
import electron, { remote } from 'electron'
electron.ipcRenderer.on();
let win = new remote.BrowserWindow({width: 800, height: 600});
remote.getGlobal(name)
全体のインポート/エクスポート方法によって私は絶対に混乱しています。
異なるモジュールシステムを混在させると、実際に混乱を招く可能性があります。
- 効かない
const electron = require('electron');
const remote = electron.remote;
あなたが持っているものとまったく同じです
var remote = require('electron').remote
あなたの仕事があれば、もう一方も同様です。しかし、私はあなたのものに固執するでしょう。
- あまりES6-squeではないようです
誰も気にしない? NodeはES6 imports
およびexports
をネイティブにサポートしていないため、CommonJSモジュールがES6モジュールにどのようにマッピングされるかは明確ではありません。require
Nodeとにかく書いている場合のみ。
tryすることができます
import electron from 'electron';
const {remote} = electron;