Vue3デスクトップアプリケーションの構築方法

Vue3デスクトップアプリケーションの構築方法

この記事では、Vite を使用して Vue 3 デスクトップ プロジェクトを開発する方法について説明します。

このプロジェクトでは、JavaScript を使用してクロスプラットフォームのデスクトップ アプリケーションを構築するための最も人気のあるフレームワークの 1 つである Electron が使用されます。 そのため、VSCode、Slack、Twitch など、多くの人気アプリケーションが Electron を使用しています。

まず何をすべきか見てみましょう:

これは単なる基本的な Vite テンプレートですが、ブラウザではなく専用のプログラムで実行されます。 これは、独自のデスクトップ アプリケーションを構築するために必要な手順です。

開発プロセスは以下のとおりです。

基本的なViteプログラムを作成する

まず、Vite アプリケーションを作成します。 ここではViteの仕組みについては詳しく説明しません。

ターミナルで次のコマンドを実行します。

npm init @vitejs/app
cd [プロジェクト名]
npmインストール

完了しました。まずはブラウザで試してください。

ターミナルで npm run dev コマンドを実行するだけです。次に、ブラウザでローカル アドレスを開くと、次の画面が表示されます。

問題ありません。今度は、Electron を設定に追加します。

ViteプロジェクトにElectronを追加する

ここでは、Electron の公式クイックスタートに従い、Vite アプリケーションにいくつかの調整を加えます。

まずElectronをインストールします。ターミナルに次のコマンドを入力します。

Electronをインストールする nnpm install --save-dev electron

次に、Electron のマニュアルを見てみましょう。

マニュアルによれば、単純な Electron 構成には 4 つのファイルが必要です。

  • package.json - すでに存在します
  • メイン.js
  • プリローダー.js
  • インデックス.html

プロジェクトには main.js ファイルと index.html ファイルがあるように見えますが、これらは Electron ファイルではなく Vite ファイルです。 Vite ファイルは Vite プログラムを実行するためにのみ使用できるため、別の Electron ファイルも必要です。

main.js はデスクトップ アプリケーションを作成するために使用され、index.html に読み込まれます。また、構築した Vite アプリケーション コードも含める必要があります。

Vite プログラムの構築

まず、Vite プログラムを構築する必要があります。 Electron と統合する必要があるため、追加の構成が必要です。プロジェクトをビルドするときに、最終的な JavaScript および CSS ファイルへのすべての参照が正しいパスを指していることを確認する必要があります。

ビルドされる Vite プロジェクトは、次の構造の dist ディレクトリを作成します。

しかし、Electron コードはプロジェクトのルート ディレクトリにあるため、プロジェクト全体のベースを dist フォルダーに設定する必要があります。 これは、パス ライブラリを使用して vite.config.js ファイル内のベース プロパティを設定することで実現できます。

//vite.config.js
'vite' から {defineConfig} をインポートします
'@vitejs/plugin-vue' から vue をインポートします
定数パス = require('path')

// https://vitejs.dev/config/
デフォルトのdefineConfigをエクスポートする({
  ベース: path.resolve(__dirname, './dist/'),
  プラグイン: [vue()]
})

これで、ターミナルで npm run build を実行して、dist ディレクトリを作成できます。

Electronのmain.jsの設定

次のステップは、プロジェクトのルート ディレクトリに main.js ファイルを作成することです。

作成したら、Electron クイック スタート ガイドからコードをコピーして貼り付けるだけです。

index.html をロードしている場所で、dist ディレクトリ内のファイルを使用するように dist/index.html に変更します。

したがって、main.js の最終コードは次のようになります。

//メイン.js
const { app, BrowserWindow } = require('electron')
定数パス = require('path')

関数createWindow(){
  const win = 新しいブラウザウィンドウ({
    幅: 800,
    高さ: 600,
    ウェブ設定: {
      プリロード: path.join(__dirname, 'preload.js')
    }
  })

  win.loadFile('dist/index.html')
}

app.whenReady().then(() => {
  ウィンドウの作成()

  app.on('activate', () => {
    (BrowserWindow.getAllWindows().length === 0)の場合{
      ウィンドウの作成()
    }
  })
})

app.on('ウィンドウがすべて閉じました', () => {
  (process.platform !== 'darwin')の場合{
    アプリ終了()
  }
})

preload.js を作成して記述します。

次に、プロジェクトのルート ディレクトリに preload.js ファイルを作成し、今度は何も変更せずにクイック スタート コードを再度使用します。

//プリロード.js
window.addEventListener('DOMContentLoaded', () => {
    const replaceText = (セレクター、テキスト) => {
      const 要素 = document.getElementById(セレクタ)
      if (要素) element.innerText = テキスト
    }
  
    for (const type of ['chrome', 'node', 'electron']) {
      replaceText(`${type}-version`, process.versions[type])
    }
})

package.json を変更する

もうすぐ完了です。Electron コマンドを実行できるように、package.json ファイルにいくつかの最終的な変更を加えるだけです。

まず、main プロパティを設定する必要があります。デフォルトでは、Electron はルート ディレクトリで index.js ファイルを探して実行しますが、ファイルの名前が main.js であるため、package.json で定義する必要があります。

//パッケージ.json
{
  "名前": "vite-electron",
  "バージョン": "0.0.0",
  "main": "main.js", // この行...
}

次に、Electron を実行する方法を設定し、スクリプト セクションに electron:start という名前の新しいスクリプトを作成し、その内容を electron .. にします。

//パッケージ.json
{
  "名前": "vite-electron",
  "バージョン": "0.0.0",
  "メイン": "main.js",
  「スクリプト」: {
    "dev": "vite",
    "ビルド": "vite ビルド",
    "serve": "vite プレビュー",
    "electron:start": "electron ." // ここ},
  ...
}

コードはこれだけです。

最後に、ターミナルで npm run electron:start コマンドを実行すると、次の結果が表示されます。

デスクトッププログラムがついに完成しました。とても簡単ですよ〜

最後に

最近、Vue を改良しているときに、ハイエンドの Vue3+TS チュートリアルを見つけました。 無料でディガーと共有してください。クリックしてチュートリアルをご覧ください

Vue3 デスクトップ アプリケーションの構築方法に関するこの記事はこれで終わりです。Vue3 デスクトップ アプリケーションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue.js デスクトップ カスタム スクロール バー コンポーネント 美化 スクロール バー VScroll
  • Vue の簡単な練習用デスクトップ クロックの実装コード例
  • Electron + Vueでデスクトップをパッケージ化する操作手順の詳細説明
  • vueプロジェクトにnoVNCリモートデスクトップを導入する方法

<<:  MySQL の組み込み関数 find_in_set を使用した効率的なあいまい検索の詳細な説明

>>:  CentOSはローカルyumソース/Alibaba Cloud yumソース/163yuanソースを設定し、yumソースの優先順位を設定します。

推薦する

XHTML 入門チュートリアル: フォーム タグ

<br />フォームはユーザーが情報を送信するための重要なチャネルです。このセクションで...

CentOS のファイルと権限の基本操作チュートリアル

序文始める前に、ファイル属性とファイル属性を変更する方法について簡単に理解しておく必要があります。 ...

React 並行関数エクスペリエンス (フロントエンド並行モード)

React は、開発者が Web およびモバイルベースのアプリケーションを作成するために使用するオ...

Viteの新しい体験の詳細な説明

Vite とは何ですか? (フロントエンドの新しいおもちゃです) Vite は、ネイティブ ES モ...

CSS3はグラフィックの落下アニメーション効果を実現します

まずは効果を確認実装コード <div class="box box1"&g...

Dockerコンテナのログ処理の詳細な説明

Docker には多くのログ プラグインがあります。デフォルトでは json-file を使用します...

MySQL 8.0.22.0 のダウンロード、インストール、設定方法のグラフィックチュートリアル

MySQL 8.0.22のダウンロード、インストール、設定方法、参考までに具体的な内容は次のとおりで...

Win 8 以降での最新の MySQL バージョン 5.7.17 (64 ビット ZIP グリーン バージョン) のインストールと展開のチュートリアル

まず、ブロガーはコミュニティ バージョンをプレイしていますが、学習とテストにはこれで十分です。 Bl...

Linux システムでのルート ディレクトリ拡張の概要

1. Linuxディスクの状態を確認する df -lh lsblkコマンドは、使用可能なすべてのブロ...

javascript:void(0) の意味と使用例

voidキーワードの紹介まず、void キーワードは JavaScript で非常に重要なキーワード...

MySQL 最適化ソリューション リファレンス

最適化によって発生する可能性のある問題最適化は必ずしも単純な環境で実行されるわけではなく、実稼働環境...

HTML で入力テキスト入力キャッシュのクリアを禁止する 2 つの方法

ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...

初心者向け入門チュートリアル: ドメイン名の解決とバインディング

では、ドメイン名を登録して仮想ホストを購入した後、IE でドメイン名を入力して Web サイトを開く...

ビジュアルデザイナーの成長の3つの段階のまとめ

この本「グラフィックデザイナーとして成長する」は多くの人が読んでおり、私もオリジナルの PDF 版を...

MySQL infobrightのインストール手順

目次1. 次のように、「rpm -ivh インストール パッケージ」コマンドを使用して rpm パッ...