Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

1. はじめに

まず、ViteとElectronを紹介します。

  • Vite は、フロントエンド開発エクスペリエンスを大幅に向上できる新しいフロントエンド構築ツールです。 「もう webpack には戻れない...」というメッセージを投稿した Youda によって開始されました。
  • Electron は、JavaScript、HTML、CSS を使用してデスクトップ アプリケーションを構築するためのフレームワークです。 Electron は Chromium と Node.js をバイナリに埋め込むため、単一の JavaScript コードベースを維持し、Windows、macOS、Linux で実行されるクロスプラットフォーム アプリを作成できます。ネイティブ開発の経験は必要ありません。

Vue を使用してデスクトップ アプリケーションを開発することを考え始めたとき、最初に検索して、現在 2 つの既成のソリューションがあることを知りました。

  • electron-vue: このプロジェクトは統合性が高く、カプセル化も完全です。このソリューションに関する中国語の記事が多数あるため、すぐに使い始めることができます。しかし、問題は組み込みのelectronのバージョンが低すぎることです。記事を書いているときに見たバージョンは2.0.4でしたが、最新のelectronバージョンは15.1.2です。
  • Vue CLI プラグイン Electron Builder: このソリューションは vue-cli に統合されています。vue add electron-builder を使用した後、基本的な構成手順を省略して、すぐに開始できます。ただし、vue-cli でのみ使用でき、vite では使用できません。

したがって、vite と electron を使用する場合は、自分で設定する必要があります。

2. Viteプロジェクトを作成する

1. Viteをインストールする

糸作成バイト

2. プロジェクトを作成する

作成コマンドは次のとおりです。

yarn create vite <vue アプリ名> --template vue

ここでkuariという名前のプロジェクトを作成します。

yarn create vite kuari --template vue

3. 入力して実行する

実行する前にプロジェクトに入り、依存関係をインストールします。

cd クアリ
糸のインストール
糸開発

実行コマンドを入力した瞬間、ほぼ実行状態となり、まさに vite と呼ぶにふさわしい状態です。このとき、出力に従ってアドレスプレビューを開くと、初期化ページが表示されます。

この時点で、基本的な vite プロジェクトが作成されました。

3. Electronを設定する

1. 公式ドキュメント

Electron 公式サイトのクイック スタート ドキュメントには、HTML、JavaScript、CSS を使用して Electron アプリケーションを作成する方法に関する公式のケース スタディがあり、vite+electron ソリューションもこれを参考にしています。

2. インストール

まず、electron to vite アプリケーションをインストールします。電子の現在のバージョンは ^15.1.2 です。

糸を追加 --dev 電子

3. 設定ファイル

1) vite.config.js

'vite' から {defineConfig} をインポートします
'@vitejs/plugin-vue' から vue をインポートします
'path' からパスをインポート // 新規 // https://vitejs.dev/config/
デフォルトのdefineConfigをエクスポートする({
  base: path.resolve(__dirname, './dist/'), // プラグインを追加: [vue()]
})

2) メイン.js
新しいファイル main.js を作成します。コンテンツ内の index.html の読み込みパスは、electron の公式サイトに記載されている構成とは異なることに注意してください。

// メイン.js

// アプリケーションのライフサイクルを制御し、ネイティブブラウザウィンドウを作成するモジュール const { app, BrowserWindow } = require('electron')
定数パス = require('path')

関数createWindow(){
  // ブラウザウィンドウを作成する const mainWindow = new BrowserWindow({
    幅: 800,
    高さ: 600,
    ウェブ設定: {
      プリロード: path.join(__dirname, 'preload.js')
    }
  })

  // index.html をロードする
  mainWindow.loadFile('dist/index.html') // これはelectron公式サイトのパスと異なりますので、ご注意ください // 開発ツールを開きます // mainWindow.webContents.openDevTools()
}

// このプログラムは、Electron が初期化を完了し、ブラウザ ウィンドウを作成するときに呼び出されます。 // 一部の API は、ready イベントがトリガーされた後にのみ使用できます。
app.whenReady().then(() => {
  ウィンドウの作成()

  app.on('activate', 関数() {
    // 通常、macOS では、ドック内のアプリケーション アイコンをクリックすると、他のウィンドウが開いていない場合は、プログラムによって新しいウィンドウが作成されます。
    (BrowserWindow.getAllWindows().length === 0) の場合、createWindow()
  })
})

// macOS を除き、すべてのウィンドウが閉じられたらプログラムを終了します。 したがって、通常、ユーザーが Cmd + Q を使用して終了するまで、プログラムとタスクバー上のそのアイコンはアクティブなままである必要があります。
app.on('ウィンドウがすべて閉じました', 関数() {
  (process.platform !== 'darwin') の場合、app.quit()
})

// このファイルには、アプリケーションの残りのコードをすべて含めることができます。
// 複数のファイルに分割し、require を使用してインポートすることもできます。

3) プリロード

新しいファイル preload.js を作成します。

// プリロード.js

// プリロード プロセス中はすべての Node.js API が利用可能です。
// Chrome 拡張機能と同じサンドボックスを備えています。
window.addEventListener('DOMContentLoaded', () => {
  const replaceText = (セレクター、テキスト) => {
    const 要素 = document.getElementById(セレクタ)
    if (要素) element.innerText = テキスト
  }

  for (['chrome', 'node', 'electron'] の定数依存関係) {
    replaceText(`${dependency}-version`, process.versions[dependency])
  }
})

4) パッケージ.json

関連する electron コマンドを実行できるようにするには、package.json ファイルを変更する必要があります。

まず、main プロパティを設定する必要があります。Electron は、最初にデフォルトでプロジェクトのルート ディレクトリにある index.js ファイルを探します。ここでは main.js を使用するので、これを定義する必要があります。

// パッケージ.json

{
  "名前": "クアリ",
  "バージョン": "0.0.0",
  "main": "main.js", // "scripts": { を追加
    "dev": "vite",
    "ビルド": "vite ビルド",
    "serve": "vite プレビュー"
  },
  「依存関係」: {
    "vue": "^3.2.16"
  },
  「devDependencies」: {
    "@vitejs/プラグイン-vue": "^1.9.3",
    "電子": "^15.1.2",
    "vite": "^2.6.4"
  }
}

最後に、electron の実行コマンドを追加する必要があります。

// パッケージ.json

{
  "名前": "クアリ",
  "バージョン": "0.0.0",
  "メイン": "main.js",
  「スクリプト」: {
    "dev": "vite",
    "ビルド": "vite ビルド",
    "serve": "vite プレビュー",
    "electron:serve": "electron ." // 新規},
  「依存関係」: {
    "vue": "^3.2.16"
  },
  「devDependencies」: {
    "@vitejs/プラグイン-vue": "^1.9.3",
    "電子": "^15.1.2",
    "vite": "^2.6.4"
  }
}

4. 走る

ターミナルに次のコマンドを直接入力します。

糸電子:サーブ

すると、デスクトップ アプリケーションが表示されます。

5. 最後に

これまでのプロジェクトでは、常に Vue CLI プラグイン Electron Builder を使用してきました。今回は、まず Electron で開発し、それをプッシュして、どのように進むかを確認するプロジェクトがあります。その後、状況に応じて Swift を使用して Mac デスクトップ アプリケーションを再開発します。何か新しいものを試してみたかったのですが、Viteを試す機会がありませんでした。

Electron は本当に便利ですが、パッケージ化されたアプリケーションが大きすぎるため、これは本当に欠点です。今回はまずWindowsユーザーをターゲットにしているので、electronを使ってみましょう!

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

以下もご興味があるかもしれません:
  • Electron-viteは、新世代の電子開発および構築ツールです。

<<:  Zabbix を使用して ogg プロセスを監視する (Windows プラットフォーム)

>>:  HTML テーブル タグ チュートリアル (34): 行スパン属性 ROWSPAN

推薦する

メタビューポートはiPhoneでウェブページをフルスクリーン表示コントロールします

困り果てて、ふと、私がよく行くSinaのタッチスクリーン版はどうやって作られているのだろう?と考えま...

Element における複数データ読み込み最適化の実装

目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...

Linux で so または実行可能プログラムの依存ライブラリを表示します

Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...

MySQL 5.5 の導入に関する問題

MySQL の導入現在、会社ではプラットフォーム運用を通じてMySQLを導入しています。金曜日、プラ...

OpenLayers 3 のベクターマップソースの読み込みの問題を解決する

1. ベクターマップベクター グラフィックスは直線と曲線を使用してグラフィックスを表します。これらの...

Linux redis-Sentinel 設定の詳細

ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...

MySQLのインストールと設定に関する詳細なチュートリアル

目次インストール不要のMySQLバージョン1. インストール パッケージをダウンロードします。 2....

Linux (CentOS7) で RPM を使用して MySQL 8.0.11 をインストールするチュートリアル

目次1. インストールの準備1. Linux関連情報の表示(Linuxコマンドライン操作) 2. M...

MySql バージョンの問題に対する完璧なソリューション sql_mode=only_full_group_by

1. sql_modeを確認する @@sql_mode を選択照会された値は次のとおりです。 ON...

CentOS7 ファイアウォールとオープンポートの簡単な使い方の簡単な紹介

概要(公式にはより詳しい説明があります) Firewalld は、ネットワーク接続またはインターフェ...

MySQLコマンドが中国語で入力できない問題の解決方法

問題を見つける最近、MySQL コマンドを使用して MySQL サーバーに接続したときに、以下のよう...

Linux の Makefile とは何ですか? どのように機能しますか?

この便利なツールでプログラムをより効率的に実行およびコンパイルしますMakefile は自動コンパイ...

mysql-8.0.16 winx64 最新インストール チュートリアル (画像とテキスト付き)

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

Vueはテーブルページング機能を実装します

この記事では、テーブルページング機能を実現するためのVueの具体的なコードを例として紹介します。具体...