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

推薦する

MySQL データベース JDBC プログラミング (Java は MySQL に接続します)

目次1. データベースプログラミングの基本条件2. Java でのデータベースプログラミング: JD...

HTMLページでチェックボックスを操作する方法

チェックボックスは Web ページで非常によく使用されます。e コマースの Web サイトでもプラッ...

HTML外部参照CSSファイルが効果を発揮しない理由の分析と解決

フロントエンドの初心者として、私は数日間フロントエンドをいじってみました。 。今日、私は自分が固く信...

TypeScript 3.7 で注目すべき 3 つの新機能について簡単に説明します。

目次序文オプションの連鎖ヌル結合呼び出されていない関数のチェック他の序文TypeScript 3.7...

LeetCode の SQL 実装 (197. 気温上昇)

[LeetCode] 197.気温上昇Weather テーブルが指定されている場合、前の日付 (昨...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

効率的な視覚化Nginxログ表示ツール

目次導入インストール表示フィールドフィルターソートキー導入Rhit は、標準フォルダー (gzip ...

CentOS の環境変数と設定ファイルの詳細な説明

序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...

WeChatアプレットでグローバル変数を監視する方法

最近、仕事で問題に遭遇しました。グローバル変数 red_heart があります。これは多くの場所で使...

JavaScript が Xiaomi のカルーセル効果を模倣

この記事は、透明度を変えてカルーセルにするXiaomiカルーセルを真似て書いたものです。初心者なので...

IE7 互換モードで IE8 を有効にするコード

最も人気のあるタグはIE8ですブラウザベンダーはバージョンアップデートのリリースに躍起になっている一...

MySql 学習 3 日目: データ テーブル間の接続とクエリの詳細

主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...

Linuxディレクトリ構造の詳細な紹介

Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...

Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする

サーバーにはNginx、データベースサポートにはMongo、Python言語のWebフレームワークに...

Web プロジェクトでの SQL インジェクションの防止

目次1. SQLインジェクションの概要2. SQLインジェクション攻撃の全体的な考え方SQLインジェ...