目次
キーテイクアウト
新しい電子プロジェクトを作成するにはどうすればよいですか?
電子アプリケーションでnode.jsモジュールを使用できますか?電子アプリケーションの.JSモジュール。 Electronはnode.jsランタイムを使用するため、アプリケーションで任意のnode.jsモジュールを使用できます。
ホームページ ウェブフロントエンド jsチュートリアル 電子付きのクロスプラットフォームデスクトップノードアプリを作成します

電子付きのクロスプラットフォームデスクトップノードアプリを作成します

Feb 18, 2025 pm 12:26 PM

電子付きのクロスプラットフォームデスクトップノードアプリを作成します

キーテイクアウト

    GitHubが開発したツールである
  • 電子により、開発者はJavaScriptとWebテクノロジーを使用してクロスプラットフォームデスクトップアプリを作成できます。 Flash、Air、Java、Silverlightなど、以前のオプションよりも安定した安全なソリューションを提供します。
  • 電子プロジェクトには、index.html、main.js、およびpackage.jsonの3つのファイルが必要です。 index.htmlファイルはデフォルトでレンダリングされたWebページ、main.jsファイルはアプリを起動し、HTMLをレンダリングするブラウザウィンドウを作成し、package.jsonファイルはアプリケーション依存関係、メタデータ、および必要なファイルをリストします。
  • 電子アプリは、電子パッカーNPMモジュールなどのツールを使用して「ネイティブ」アプリケーションにパッケージ化できます。これにより、Windows、MacOS、Linuxなどのさまざまなプラットフォームで実行できる実行可能なバイナリが作成されます。
  • 電子は単純なアプリだけではありません。複雑な機能を処理し、クリップボードアクセス、アプリケーションメニューバーツール、デバッグ用のChrome開発ツールなどの機能へのアクセスを提供できます。 Atom、Slack、Kitematicなどのいくつかの一般的なアプリケーションは、電子で構築されています。
  • 私を昔ながらと呼んでいますが、各目的に適したデスクトップアプリを使用することを常に好んでいます。私が使用するのが私が行うすべてのブラウザだけであるなら、なぜ「適切な」コンピューターを持っているのでしょうか?実用的なレベルでは、私は頻繁に旅行し、一般にインターネット接続の間に「間に」または不安定なインターネット接続を使用しています。通常、「実際の」アプリケーションは、効果的なオフラインの動作を可能にするのにはるかに優れています。
  • ネイティブのデスクトップアプリケーションがどれほど複雑であるかを感謝し、企業がユーザーをWebまたはクロスプラットフォームバージョンにプッシュする理由を理解できます。何十年にもわたってこれを達成するための多くの選択肢がありました。フラッシュ、エア、ジャワ、スライバライトはすべて、さまざまな程度の成功でこの機能を約束するオプションです。
  • これらのオプションの主な問題は、通常、別の言語(ポイントを打ち負かす)を学ぶか、ユーザーが安定性、パフォーマンス、セキュリティの問題に悩まされているプラ​​グインをインストールすることを強制したことです。
私たちは皆、JavaScriptとWebテクノロジーの力を知っており、この知識を使用してクロスプラットフォームのデスクトップアプリを開発およびパッケージ化するためのオプションの波を見てきました。

電子、Githubによる電子は1つのオプションですが、すでにいくつかのアプリを使用しているので、調査するのに適したオプションのように思えました。 1つの名前の変更(原子シェルから)を含む2年間の開発の後、電子は最近バージョン1.0に達しました。これは常にプロジェクトの存在のマイルストーンです。それが何ができるかを見るのにもっと良い時間

電子の取り付け

Electronにはクイックスタートプロジェクトがあり、事前に構築されたリリースが利用可能ですが、NPMを介して深い端にまっすぐに飛び込み、電子をインストールしましょう。

またはMac Homebrew愛好家の場合、Cask経由:

<span>npm install electron-prebuilt -g
</span>
ログイン後にコピー
ログイン後にコピー

どのオプションをフォローしても、実行可能な電子バイナリになってしまうはずです。

電子付きのクロスプラットフォームデスクトップノードアプリを作成します

このアプリケーションは、最終プロジェクトの作成と実行にのみ使用されますが、それを作成するためではありません。このためには、標準のテキストエディターまたはIDEを使用できます。

電子プロジェクトには、3つのファイルが必要です

index.html:デフォルトでレンダリングされたWebページ
    Main.js:アプリを起動し、HTMLをレンダリングするためのブラウザウィンドウを作成します。
  • package.json:アプリケーションの依存関係、メタデータ、および必要なファイルをリストします。
  • ヒーローが必要です
この例では、Marvel APIに接続し、25人のスーパーヒーローを引き込み、名前とサムネイルの画像を表示する簡単なアプリケーションを作成します。プロセスが完了したときにシステム通知が表示され、OSのようなアプリケーションアイコンがあります。エンドユーザーは、アプリケーションがどのように作成されたか、またはソースコードを表示できることを認識していません。

githubで最終プロジェクトを見つけることができます。電子付きのクロスプラットフォームデスクトップノードアプリを作成します

Package.jsonを開き、次のものを追加します

これは標準のpackage.jsonファイルであり、node.jsと同じ形式とオプションに従います。ここで、アプリケーション名、バージョン、メインJavaScriptファイル、依存関係を設定します。

npmインストールを追加して、これらを追加して、依存関係をインストールしていることを確認してください。

Main.jsは、ホストオペレーティングシステムとJavaScriptコード間の相互作用を処理します。これは簡単な例です。電子のドキュメントで何が可能かについて詳しく知ることができます。

最初に、必要な要件(つまり電子)を設定し、アプリ、ネイティブブラウザウィンドウ、およびメインウィンドウプレースホルダーを作成して作業しましょう。

Windowsが閉じている場合は、アプリケーションを終了する次のハンドル。プラットフォームがOS Xの場合、通常、すべてのウィンドウが閉じられ、ユーザーは通常明示的に終了する後、アプリケーションは通常開いたままであるため、そのユースケースを処理します。

brew <span>install Caskroom/cask/electron
</span>
ログイン後にコピー
ログイン後にコピー
電子が初期化されたら、ブラウザウィンドウを作成し、アプリケーションコードをロードします。ウィンドウが閉じている場合、ウィンドウオブジェクトを抑制します。

アプリと呼ばれるサブフォルダーを作成します。 app/index.htmlで、必要なスタイルシートとjavascriptファイルに参照を追加し、インターフェイスのHTML構造をセットアップします。

app/css/index.cssを作成し、レイアウトを支援するために基本的なCSSを追加します。

app/js/index.jsを作成します。これは、アプリケーション機能のほとんどが行われる場所です。必要な依存関係と変数をセットアップすることから始めます:

<span>npm install electron-prebuilt -g
</span>
ログイン後にコピー
ログイン後にコピー

Marvel APIは使用するのが楽しいAPIですが、認証とデータ構造は混乱を招く可能性があります。ここでキーについてサインアップし、次の指示に従って、上記の3つのパラメーターを取得します。認証に必要なパブリックおよびプライベートキーは、.ENVファイルに保存され、dotenvパッケージを使用してアクセスされます。

brew <span>install Caskroom/cask/electron
</span>
ログイン後にコピー
ログイン後にコピー
制限値は、要求するレコードの数を設定し、設定できる他のパラメーターがあります。

Marvel APIでの接続と認証をスキップしたい場合は、代わりに使用できるデータのJSONファイルを作成しました。上記のJavaScriptコードを次のものに置き換えます

次に、各文字をCharacter_List Divに出力するために必要なHTMLおよびプレースホルダー変数を作成します:

<span>{
</span>  <span>"name": "hero-browser",
</span>  <span>"version": "0.1.0",
</span>  <span>"main": "main.js",
</span>  <span>"dependencies": {
</span>    <span>"dotenv": "^2.0.0",
</span>    <span>"md5": "^2.1.0"
</span>  <span>}
</span><span>}
</span>
ログイン後にコピー

次に、APIを呼び出して応答を処理し、resp.data.results。

各文字にHTML要素を作成し、Character_Listに追加します。 Marvel APIの画像は、ファイル名と拡張子に分けられます。利用可能な画像がない場合、「利用可能な画像なし」画像が表示されますが、これを処理できますが、この例ではわかりません。
<span>'use strict';
</span>
<span>const electron = require('electron');
</span><span>const app = electron.app;  // Module to control application life.
</span><span>const BrowserWindow = electron.<span>BrowserWindow</span>;  // Module to create native browser window.
</span><span>var mainWindow = null;
</span>
ログイン後にコピー
ループが完了したら、システム通知、閉鎖方法、およびAPIに接続する潜在的なエラーを処理します。

プロジェクトのルートディレクトリで以下のコマンドを実行して、アプリケーションを実行します:

app<span>.on('window-all-closed', function() {
</span>    <span>if (process.platform != 'darwin') {
</span>        app<span>.quit();
</span>    <span>}
</span><span>});
</span>
ログイン後にコピー
アプリケーションのパッケージ

app<span>.on('ready', function() {
</span>  mainWindow <span>= new BrowserWindow({width: 800, height: 600});
</span>  mainWindow<span>.loadURL('file://' + __dirname + '/app/index.html');
</span>
  mainWindow<span>.on('closed', function() {
</span>    mainWindow <span>= null;
</span>  <span>});
</span><span>});
</span>
ログイン後にコピー
コードを「ネイティブ」アプリケーションにパッケージ化するのは簡単ですが、いくつかのピースが必要です。最初にアプリケーションバッジのアイコン。これの外観とファイルの種類は、ターゲットを絞っているオペレーティングシステムに依存しますが、Marvelの公式Androidアプリから撮影したアイコンは次のとおりです。

電子付きのクロスプラットフォームデスクトップノードアプリを作成します

注:ここでは、著作権で保護されたマーベルプロパティを使用しています。それらを自分のものとして配布しないでください!

その後、iconverticons.com/online/を使用してPNGをMacアイコンファイルに変換しましたが、他にも利用できるツールがあります。

プロジェクトをパッケージ化する最も簡単な方法は、電子パッカーNPMモジュールを使用することです(注:これは個別にインストールする必要があります)。デスクトップアプリの場合、これは問題ではないかもしれませんが、他のオプションがここで説明されている場合は、大規模なバイナリを生成できます。

ウィンドウ以外のプラットフォームでWindows用のパッケージングを使用している場合、ワインをインストールする必要があります。これは大きな依存関係です。

これらの警告はさておき、アプリケーションのバイナリを作成する方法は次のとおりです。プロジェクトフォルダで、プロジェクトに関連する値に置き換えます電子付きのクロスプラットフォームデスクトップノードアプリを作成します):

を実行します)

順番に、これらのパラメーターが設定されています:

  • プロジェクトフォルダー。
  • 生成されたアプリケーション名。
  • プラットフォーム:これらは、Windows、Linux、Vanilla Mac OS XのDarwin、Mac App StoreリリースのMASの場合はWin32です。すべてを設定すると、すべてのプラットフォームのバイナリが生成されます。
  • アーキテクチャ:32および64ビットCPUアーキテクチャのIA32およびX64、またはすべて。
  • 使用する電子バージョン。
  • 出力バイナリの場所と既存のファイルを上書きするために。
  • 使用するアイコン。
  • 注:すべてのパラメーターは複数の値に対してコンマを分離できます。すべてのプラットフォームとアーキテクチャを生成する場合は、関連するパラメーターを-all。
に置き換えることができます。

電子付きのクロスプラットフォームデスクトップノードアプリを作成しますさらなる手順

これは、電子の可能性を示す簡単な例であり、さらに多くの例が可能です。純粋なJavaScriptで達成できることを別にすることは、次のように見たいかもしれません。

Mac App Storeの送信。

    Chrome Dev Toolsを使用しています
  • クリップボードアクセス。
  • アプリケーションメニューバーツールの作成。
  • Electronの新しいインタラクティブAPIエクスプローラー。
  • デボルトロン、特に電子開発専用のChrome開発ツールの拡張。
  • まだ懐疑的ですか?この記事をAtomで書いている間、この記事の編集者とSlackの編集者と通信し、Kitematicで作成されたDockerコンテナでアプリケーションをテストしたことを指摘したいと思います。これらはすべて電子生成アプリケーションです。わかりました、彼らには問題がありますが、それはかなり印象的です!
  • 以下のコメントで、電子で構築するアプリケーションについて聞いてみたいです。
電子

を備えたデスクトップノードアプリに関するよくある質問

電子を使用してデスクトップアプリを開発するための前提条件は何ですか?

電子を使用してデスクトップアプリケーションの開発を開始する前に、システムにnode.jsとnpm(ノードパッケージマネージャー)をインストールする必要があります。 node.jsは、サーバーまたはマシンでJavaScriptを実行できるJavaScriptランタイムであり、NPMはnode.jsパッケージのパッケージマネージャーです。公式node.js Webサイトからnode.jsとnpmをダウンロードできます。これらをインストールしたら、npmを使用して電子をインストールできます。

システムに電子をインストールするにはどうすればよいですか? Node.jsとNPMをインストールしたら、端末またはコマンドプロンプトの次のコマンドを使用して、システムにグローバルに電子をインストールできます。NPMインストール-G Electron。このコマンドはグローバルに電子をインストールし、システム上の任意のディレクトリからアクセスできるようにします。

新しい電子プロジェクトを作成するにはどうすればよいですか?

新しい電子プロジェクトを作成するには、最初に、プロジェクトの新しいディレクトリを作成します。ターミナルまたはコマンドプロンプトのこのディレクトリに移動し、コマンドNPM initを使用して新しいnode.jsプロジェクトを初期化します。このコマンドは、プロジェクトディレクトリに新しいpackage.jsonファイルを作成します。次に、コマンドnpmインストール - 保存電子を使用してプロジェクトに電子をインストールできます。 package.json、main.js、およびindex.html。 Package.jsonファイルには、アプリケーションとその依存関係に関するメタデータが含まれています。 main.jsファイルは、アプリケーションのライフサイクルイベントを制御できるアプリケーションのエントリポイントです。 index.htmlファイルは、アプリケーションが起動したときに表示されるWebページです。端末またはコマンドプロンプト、次にコマンド電子を使用します。このコマンドはアプリケーションを起動します。電子パッカーや電子ビルダーなどのモジュールを使用できます。これらのモジュールを使用すると、さまざまなプラットフォームで実行できる実行可能ファイルにアプリケーションをパッケージ化できます。

電子アプリケーションでnode.jsモジュールを使用できますか?電子アプリケーションの.JSモジュール。 Electronはnode.jsランタイムを使用するため、アプリケーションで任意のnode.jsモジュールを使用できます。

電子アプリケーションでWebテクノロジーを使用できますか?電子アプリケーション。 Electronは基本的に、HTML、CSS、JavaScriptなどのWebテクノロジーを使用してデスクトップアプリケーションを作成できるWebブラウザーです。 Chrome開発者ツールを使用します。電子はクロム上に構築されているため、アプリケーションをデバッグするために使用できる組み込み開発者ツールが含まれています。電子を使用してクロスプラットフォームアプリケーションを構築します。 Electronを使用すると、Windows、MacOS、Linuxで実行されるアプリケーションを構築できます。

以上が電子付きのクロスプラットフォームデスクトップノードアプリを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptは学ぶのが難しいですか? JavaScriptは学ぶのが難しいですか? Apr 03, 2025 am 12:20 AM

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Zustand非同期操作:UseStoreが取得した最新の状態を確保する方法は? Zustand非同期操作:UseStoreが取得した最新の状態を確保する方法は? Apr 04, 2025 pm 02:09 PM

Zustand非同期操作のデータの更新問題。 Zustand State Management Libraryを使用する場合、非同期操作を不当にするデータ更新の問題に遭遇することがよくあります。 �...

See all articles