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

推薦する

Linux rpm および yum コマンドとその使用法の詳細な説明

RPM パッケージ管理インターネット ダウンロード パッケージのパッケージ化およびインストール ツー...

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

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

画像比較を実現するjQueryプラグイン

この記事の例では、画像比較を実現するためのjQueryプラグインの具体的なコードを参考までに共有して...

ファイアウォールルールの設定とコマンド(ホワイトリスト設定)の詳しい説明

1. ファイアウォールルールを設定する例1: ポート8080を外部に公開する ファイアウォールコマン...

Ckeditor + Ckfinderを使用したJavaScriptファイルアップロードケースの詳細な説明

目次1. 準備2. 減圧3. 統合を開始する1. 準備Ckeditor_4.5.7_full + C...

js は、Element の入力コンポーネントのいくつかの機能を実装し、それをコンポーネントにカプセル化します (サンプルコード)

現在実装されているのは、基本的な使用方法、クリア可能なボックス、パスワードボックスです。参考リンク:...

Python ベースの Linux システムにおける特定のプロセスのパフォーマンス監視の考え方の詳細な説明

インターネット上には Linux サーバーを監視するためのツール、コンポーネント、プログラムが多数あ...

カルーセル効果を実現するjQueryプラグイン

毎日jQueryプラグイン - カルーセルチャートを実装するためのjQueryプラグイン。参考までに...

React プロジェクトにおける axios カプセル化と API インターフェース管理の詳細な説明

目次序文インストール導入環境の切り替え傍受を要求するレスポンスインターセプションAPIの統合管理要約...

CentOS7にPHP7 Redis拡張機能をインストールする方法

導入前回の記事では、Redis をインストールして設定しましたが、まだ終わりではありません。PHP ...

DD DT DLタグの使用例

通常は <ul><li> タグを使用しますが、dd タグと dt タグも便利...

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

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

Centos 7.4 でリモート アクセス制御を実装する方法

1. SSHリモート管理SSH はセキュア チャネル プロトコルであり、主にリモート ログイン、リモ...

HTMLを圧縮しない理由はいくつかある

理由は簡単です。 HTML ドキュメントでは、複数の空白文字は 1 つの空白文字と同等です。つまり、...

Win7 での Mysql 5.7.17 winx64 インストール チュートリアル

ソフトウェア バージョンとプラットフォーム: MySQL-5.7.17-winx64、win7 Ho...