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ソースの優先順位を設定します。

推薦する

HTML マルチヘッダーテーブルコード

1. マルチヘッダーテーブルコードコードをコピーコードは次のとおりです。 <!DOCTYPE ...

CentOS 8 システム FTP サーバーのインストールとパッシブ モードの設定の詳細なチュートリアル

目次1. 基本を理解する2. システム環境を確認する3. ftpコマンドをインストールする[オプショ...

nginx と openssl で https を実装する方法

サーバーデータがSSL証明書を使用して暗号化および認証されていない場合、ユーザーのデータはプレーンテ...

CSS floatプロパティの詳細な説明

1. フローティングとは何ですか?フローティングは、その名の通り、浮遊することを意味します。要素がド...

CSS 位置プロパティが絶対の場合のパーセンテージ値の計算

位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...

MySQL で null 値と空文字 ('') を区別する

日常の開発では、データベースの追加、削除、変更、クエリが一般的に行われるため、Mysql で NUL...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

Vue.js プロジェクトの開始方法

目次1. Node.jsとVue 2. ローカル開発環境でフロントエンドのVueプロジェクトを実行す...

mysql-8.0.19-winx64 をインストールしてログインするための初心者向けチュートリアル (初心者必読)

目次1. インストールパッケージ(64ビット)をダウンロードする2. MySQLデータベースをインス...

回転灯効果を実現するWeChatアプレットの例

序文日常の開発では、テキストの水平スクロール効果(一般にカルーセルと呼ばれる)によく遭遇します。これ...

Vue の動的コンポーネントと非同期コンポーネントの詳細な理解

1. 動的コンポーネント <!DOCTYPE html> <html> &l...

Vue nextTickの原理の分析

目次イベントループmiscroTask (マイクロタスク) UI レンダリング (重要なポイント)次...

背景画像に CSS3 変換を適用するためのソリューション

CSS 変換は便利ですが、背景画像にはまだ適用されていません。この投稿では、背景画像を回転させたい場...

MySQL は低速クエリを可能にします (EXPLAIN SQL ステートメントの使用の概要)

今日、データベース操作はますますアプリケーション全体のパフォーマンスのボトルネックになりつつあり、こ...

Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル

1. Navicat for MySQL 15をダウンロードするhttps://www.navica...