[解決済み] Node-Webkit vs Electron [終了しました。]
質問
私たちは、クロスプラットフォームのデスクトップアプリケーションを構築することを計画しています。その結果 ノード・ウェブキット は私たちにとって完璧な選択です。しかし、GitHub が開発した独自のフレームワークである エレクトロン という独自のフレームワークを開発しました。
両者の違いは何ですか?
どのように解決するのですか?
電子は
ページ
との違いを説明しています。
nwjs
.
NW.jsのように、ElectronはWeb技術を使ってデスクトップアプリケーションを書くためのプラットフォームを提供します。 を書くためのプラットフォームを提供します。どちらのプラットフォームでも、開発者は HTML、JavaScript、そしてNode.jsを利用することができます。表面上、それらは非常によく似ているように見えます。
しかし、この2つのプロジェクトには根本的な違いがあります。 そのため、ElectronはNW.jsとは完全に別の製品となっています。
- アプリケーションのエントリー NW.jsでは、アプリケーションの主なエントリーポイントはHTMLのWebページです。 NW.jsでは、アプリケーションの主なエントリポイントをHTMLのWebページにすることができます。その場合、NW.jsは与えられたエントリポイントをブラウザウィンドウで開きます。 その場合、NW.jsは与えられたエントリーポイントをブラウザウィンドウで開きます。
Electronでは、エントリーポイントは常にJavaScriptスクリプトです。URLを直接指定するのではなく URLを直接指定するのではなく、手動でブラウザウィンドウを作成し、APIを使ってHTMLファイルを読み込むことになります。 HTMLファイルをAPIで読み込みます。また、アプリケーションを終了するタイミングを決めるために、ウィンドウ イベントをリスニングし、アプリケーションを終了するタイミングを決定する必要があります。
ElectronはどちらかというとNode.jsのランタイムに近い形で動作します。ElectronのAPIは低レベルです。 PhantomJSの代わりにブラウザのテストに使用することができます。 PhantomJSの代わりにブラウザのテストに使うことができます。
Nodeの統合 NW.jsでは、WebページでのNodeの統合は、Chromiumにパッチを当てる必要があります。 は動作させるために Chromium にパッチを当てる必要があります。 ElectronではChromiumのハッキングを避けるために、libuvループと各プラットフォームのメッセージループを統合する異なる方法を選びました。 ループに統合する方法を選びました。そのため
node_bindings
のコードを見てください。 のコードをご覧ください。JavaScriptのコンテキスト NW.jsの経験者であれば、NodeコンテキストとWebコンテキストの概念に精通しているはずです。 Node コンテキストと Web コンテキストという概念に馴染みがあるはずです。 これらの概念は、NW.js がどのように実装されたかによって考案されました。
Nodeのマルチコンテキスト機能を利用することで、ElectronはWebページに新たなJavaScriptのコンテキストを導入することはありません。 ウェブページに新しいJavaScriptのコンテキストを導入することはありません。
注意:NW.jsは0.13からオプションでマルチコンテキストをサポートしています。
- レガシーサポート NW.js は、Windows XP をサポートする "Legacy release" をまだ提供しています。 Windows XP をサポートします。これは、セキュリティ アップデートを受け取りません。
ハードウェア メーカー、Microsoft、Chromium、および Node.js が、そのシステムに対して重要なセキュリティ アップデートすらリリースしていないことを考えると はそのシステムに対して重要なセキュリティ更新プログラムさえもリリースしていないことを考えると Windows XP を使用することは、非常に安全ではなく、まったく無責任であることを警告しなければなりません。 無責任です。
しかし、私たちの想像を超えるような要件が存在することも理解しています。 そのため、Windows XP で動作する Electron のようなものを探しているのであれば、NW.js を使用することをお勧めします。 Windows XP で動作する Electron のようなものを探しているなら、NW.js のレガシー リリースはあなたにぴったりかもしれません。 が最適かもしれません。
- 機能 サポートされる機能の量には多くの違いがあります。 があります。Electronはコミュニティが大きく、より多くのプロダクションアプリが利用しています。 npmで利用可能なユーザーランドモジュールが大量にある。
例えば、Electronには自動更新のサポートが組み込まれており、インストーラの作成を容易にするツールが無数にあります。
例えば、Electronには自動更新のサポートが組み込まれており、インストーラを簡単に作成するためのツールが無数にあります。また NW.js を支持する例として、NW.js は Chrome アプリの開発のために、より多くの Chrome.* API をサポートしています。 NW.js は Chrome Apps の開発のためのより多くの Chrome.* API をサポートしています。
もちろん、私たちは Electron が、ウェブ技術(例えば、NW.js のような)で構築された洗練された製品アプリケーションのためのより良いプラットフォームであると考えています。 ウェブ技術で構築された洗練されたプロダクション アプリケーション(Visual Studio Code、Slack など)には Electron が最適なプラットフォームだと考えています。 Visual Studio Code、Slack、または Facebook Messenger のような)Web 技術で構築された洗練されたプロダクション アプリケーションには、Electron がより良いプラットフォームであると信じています。 しかし、私たちは Web テクノロジーの友人に対して公平でありたいと考えています。もし、あなたが以下のような機能を必要としているのであれば NW.jsを試してみてはいかがでしょうか。
Electronのwikiページからの引用ですので、偏りがあるかもしれません。
Electronは
新しい JavaScript コンテキストをウェブページに導入するものではありません。
ソースコードの保護
エレクトロン は、そのアプリケーションを 浅瀬 でパッケージングしており、その中にはアプリケーションの保護されていないソースコードが含まれています。これにより、アプリケーション 1 がアプリケーション 2 を抽出し、ユーザーに気付かれることなく脆弱なスクリプトを注入することが可能になっています。チェックアウトできるのは このプロジェクトを GitHub でチェックアウトして、Slack アプリを操作する方法の例を見ることができます。 を参考にしてください。今のところ のソースコード保護機能を実装する予定はありません。 .
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン