web-dev-qa-db-ja.com

ES6構文インポートElectron(必須..)

新しいES6構文を学ぶために、JSコードのリファクタリングを試みてきました。

全体のインポート/エクスポート方法によって私は絶対に混乱しています。

このrequireステートメントをES6に変更するにはどうすればよいですか?

var remote = require('electron').remote

私は見ました この答え しかし:

  1. 効かない
  2. あまりES6-squeではないようです

何かご意見は?

19
c1c1c1

インポートは実装されていないようです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)

遊び場

13
Thomas Di G

全体のインポート/エクスポート方法によって私は絶対に混乱しています。

異なるモジュールシステムを混在させると、実際に混乱を招く可能性があります。

  1. 効かない
const electron = require('electron');
const remote = electron.remote;

あなたが持っているものとまったく同じです

var remote = require('electron').remote

あなたの仕事があれば、もう一方も同様です。しかし、私はあなたのものに固執するでしょう。

  1. あまりES6-squeではないようです

誰も気にしない? NodeはES6 importsおよびexportsをネイティブにサポートしていないため、CommonJSモジュールがES6モジュールにどのようにマッピングされるかは明確ではありません。require Nodeとにかく書いている場合のみ。


tryすることができます

import electron from 'electron';
const {remote} = electron;
6
Felix Kling