2016-08-31 2 views
3

私はNode.jsとElectronを使い始めました。モジュールとモジュールの必要な方法については、ドキュメントとサンプルコードの両方でさまざまな方法を見てきました。具体的には、thisチュートリアルに従います。この特定の例では、electronにあるappが必要と考えています。チュートリアルでNode.jsで必要とする適切な方法は何ですか?

1)、それはあなたが持っている:

var app = require('app') 

2)あなたが始めるのに役立つ電子によって提供されelectron-quick-start例では、彼らはあなたが持っている:

const electron = require('electron') 
const app = electron.app 
Electron documentation

3)、それらは、使用:

const {app} = require('electron') 

4)で、見つかりました:

import { remote } from 'electron' 
var app = remote.app 

ここでは何が起こっていますか?私はほとんどインターネットの周り#1を見ていると、これらのモジュールを変更しないので、varconstは本質的に入れ替えることができるようです。私が理解できないのは、がelectronにある場合、#1はそれが直接要求される理由です(require('electron.app')など)。私は#4が実際にelectron.remoteにあることを暗示しているようだから、さらに混乱している。第2に、ドキュメンテーションで使用されているので#3が好まれますか?または#4が優先ですか? #4のプログラムのコメントには、 "すべてのモジュールに新しいES6モジュールの構文を使用する"と書かれています。これはこれがJavaScriptの未来を意味するのでしょうか?もちろん、これらが構文上の違いだけであるか、実際にプログラムの実行方法に影響を与えるかどうかを知りたいと思います。

+1

IMHOでは 'var http = require( 'http')'を使用します。 'var'と' const'はあなた次第です。 – mscdex

+0

いくつかのケースでは、電子のmain.jsファイルに 'var'だけを使って問題が発生しました。私に問題を与えなかったのは 'const {app} = require( 'electron')'でした。唯一の違いは、別のスタンドアロンの入力で –

+0

が 'const'と' let'を利用できる場合に 'var'を完全に使わないことです。例[here](http://eslint.org/docs/rules/no-var) – blockloop

答えて

2
  • #1はElectron v1.0 +では動作しなくなりました。
  • #2およびは同等であり、#3destructuring assignmentをちょうど使用します。
  • #4はNodeJSはまだネイティブで対応していないES6 module import構文を使用していますので、あなたがあなたのバベル、または活字体でコード、またはrequire文にそれらのimport文を変換することができ、いくつかの他のtranspilerをtranspile場合にのみ動作します。
+0

ありがとうございました!私が#1を使用して問題を抱えていたのも不思議ではありませんが、もう動作しないことはわかりませんでした。 –

関連する問題