現在使用されているバージョンは、@vue/cli4 によって作成された vue3.0 + typescript + electron 12 です。他のバージョンはまだテストされていません。インターネット上の情報は質がまちまちなので、私は時間をかけて一つずつ実験し、現時点での最善の解決策にたどり着きました。 リポジトリソースを変更するElectron 版の未知の性質上、serve は利用できるもののビルド後に白い画面が表示される可能性がありますので注意が必要です。コードのロールバックを容易にするために、バージョンが利用可能になったらコミットするのが最善です。よりよい情報をお持ちの方は、ぜひ共有してください。 設定を開始する前に、yarn と npm の rc ファイルを少し変更することができます。コマンドまたはファイルを使用して、.npmrc または .yarnrc を直接変更します。これらの 2 つのグローバル設定ファイルは通常、C:\user\現在のアカウント フォルダーにあります。または、現在のプロジェクトに新しいファイル コマンド rc ファイルを作成して、ローカルで設定を変更します。 npm 設定レジストリ http://registry.npm.taobao.org/ npm で chromedriver_cdnurl を設定し、http://registry.npm.taobao.org/chromedriver を設定します。 npm で electron_mirror の設定を設定します http://registry.npm.taobao.org/electron/ npm で electron_builder_binaries_mirror の設定を設定します http://registry.npm.taobao.org/electron-builder-binaries/ インストール プロセス中に、vue create <プロジェクト名> を使用して vue3 バージョンを選択します。コンテンツが作成されたら、プロジェクト ディレクトリに入り、vue electron-builder を追加して electron を構成し、現在のバージョン 12 を選択します。 起動する対応する起動コマンドは package.json にまとめられています。
vue-devtoolsを置き換えるプロジェクト配下では、src/background.ts が electron の起動ディレクトリになっています。開発環境では、起動待ち時間が長くなると、次のような状況が発生します。
これは、プロジェクトが vue-devtools をダウンロードして読み込むために Google ストアに接続する必要があり、それが失敗したためです。 ツールをロードする方法をいろいろ試しましたが、すべて失敗したため、一時的な解決策としてツールを削除します。コードが見つかったら、installExtensionを削除するだけです app.on('ready', 非同期() => { if (isDevelopment && !process.env.IS_TEST) { // Vue Devtools をインストール 試す { // installExtension(VUEJS_DEVTOOLS) を待機します } キャッチ (e) { console.error('Vue Devtools のインストールに失敗しました:', e.toString()) } } ウィンドウの作成() }) これまでいろいろな方法を試してきましたが、効果はありませんでした。その後、慎重に比較してみると、いくつか問題が見つかりました。 vue3 と vue2 の vue-devtools は異なるため、vue2 の dev-tools を vue3 で使用することはできません。そのため、vue3 の対応する開発ツールをダウンロードする必要があります。 vue2 の最新バージョンは 5.x ですが、vue3 の最新バージョンは 6.x ベータ版です。このバージョンのプラグインは、crx4chrome からダウンロードできます。ダウンロードしたcrxを解凍し、プロジェクトのルートディレクトリにコピーし、セッション読み込みを使用して元のawait installExtension(VUEJS_DEVTOOLS)を次のように置き換えます。 'electron' から {session} をインポートします app.on('ready', 非同期() => { if (isDevelopment && !process.env.IS_TEST) { // Vue Devtools をインストール 試す { const vue_devtools = 'ljjemllljcmogpfapbkkighbhhppjdbg-6.0.0-beta-13-Crx4Chrome.com' session.defaultSession.loadExtension(path.resolve(vue_devtools)) を待機します。 } キャッチ (e) { console.error('Vue Devtools のインストールに失敗しました:', e.toString()) } } ウィンドウの作成() }) プロジェクトを開始すると、vue の拡張子を表示できます。 のために
無視できます。迷惑なプロンプトを表示したくない場合は、ツールのmanifest.json内の対応するコンテンツを削除できます。 予防<script setup>構文は使用できません
electron-edge-js を使用して、c# で開発された dll ファイルをロードします。構成プロセスは少し面倒です。解決策を探すのに 2 日間費やしましたが、役に立ちませんでした。解決策は次のとおりです。適切な薬を処方する必要があります。
エッジを使用するには、3つの構成を同時に追加する必要があります 何も設定されていない場合は、Uncaught (in promise) Error: Cannot find module '...\node_modules\electron\dist\resources\electron.asar\renderer\native\win32\x64\14.16.0\edge_nativeclr' が発生します。このとき、vue.config.js ファイルに追加する必要があります。設定ファイルがない場合は、package.json と同じ階層に作成する必要があります。 モジュール.エクスポート = { プラグインオプション: { 電子ビルダー: { 外部: ['electron-edge-js'] } } } 設定が有効になっていない場合、__dirname __filenameなどのNode.js組み込み変数は使用できません。 { // Node.js APIを使用する場合は、パッケージ化時にこれをtrueに設定する必要があります ノード統合: true、 // 同時に、これをfalseに設定する必要があります // 設定されていない場合は、Uncaught ReferenceError: require が定義されていないことを報告します コンテキスト分離: false } 上記の設定が完了すると、Uncaught (in promise) TypeError: fs.existsSync is not a functionが報告されます。 モジュール.エクスポート = { プラグインオプション: { 電子ビルダー: { 外部: ['electron-edge-js'], // これも有効にする必要があり、参照関係はコンパイルフェーズ中に nodeIntegration: true に書き込まれます。 } } } このオプションを単独で設定し、新しい BrowserWindow に対して nodeIntegration: true を有効にしないと、Uncaught ReferenceError: require is not defined が発生します。 また、dll を配置するフォルダについては、リソースを格納するためにプロジェクト ルート ディレクトリにリソースが作成されるのが一般的であり、プロジェクトのパッケージ化処理中にリソース ディレクトリが直接パッケージ化されることはないため、エラーを防ぐためにリソース構成を増やす必要があります。ファイル参照については、開発環境では現在ご覧になっている構造になっています。コンパイルとパッケージ化後は、インストールディレクトリ下の resources ディレクトリになります。そのため、本番環境と開発環境では参照ファイルに若干の違いがあります。実験後にファイル参照を確認できます。 モジュール.エクスポート = { プラグインオプション: { 電子ビルダー: { 外部: ['electron-edge-js'], // これも有効にする必要があり、参照関係はコンパイルフェーズ中に nodeIntegration: true に書き込まれます。 ビルダーオプション:{ 追加リソース: { // 静的ファイルを指定された場所にコピーします。そうしないと、'resources/' からファイルが見つからないというメッセージが表示されます。 に: '。/' }, } } } } ファイルアクセスディレクトリメソッドを提供し、異なるオペレーティングシステムでアプリのリソースディレクトリを直接取得できます。ウィンドウの場合、process.platform==='win32' 定数パス = require('path') エクスポート関数 getAppResourcePath (filePath: 文字列) { プロセスプラットフォームが 'darwin' の場合 || プロセスプラットフォームが 'linux' の場合 { process.env.NODE_ENV === '開発'の場合{ path.resolve('resources/' + filePath) を返します。 } それ以外 { path.join(__dirname, '..') + filePath を返します。 } } それ以外 { path.resolve('resources/' + filePath) を返します。 } } セットアップ構文を使用する場合は、それを導入するために require('electron-edge-js') を使用する必要があります。インポートは使用できません。そうしないと、セットアップ構文の代わりに、構文エラー: TypeError: Cannot read property 'content' of null が報告されます。直接インポートできます。 ボーダーレスウィンドウシステム自体にはフレームがあります。フレームをカスタマイズする必要がある場合は、フレームレス設定を使用できます。操作ウィンドウをドラッグするためにカスタムコンポーネント(div.custom-frame-titleなど)を使用する必要がある場合は、対応する要素にスタイルを追加する必要があります。 .カスタムフレームタイトル{ -webkit-user-select: none; // この項目はテキスト選択との競合を防ぎます -webkit-app-region: drag; // この項目はシステム固有のステータスバーです} フロントエンドとバックエンドの通知'electron' から {ipcMain,ipcRenderer} をインポートします。 Electron には利用可能な API が多数ありますが、最も重要なのは、UI プロセスとシステム プロセス間の通信に使用される ipcMain と ipcRenderer です。 vue では、システムからメッセージを受信するには ipcRenderer.on('eventname') を使用し、システムに通知を送信するには ipcRenderer.send('eventname') を使用します。同様に、メイン スレッドでは ipcMain を使用できます。 ipcは通常、カスタムタイトルバーやウィンドウ自体の操作を必要とするその他のイベントと組み合わせて次の操作を実行します。 win.minimize() //ウィンドウを最小化 win.maximize() //ウィンドウを最大化 win.close() //ウィンドウを閉じる win.hide() //ウィンドウを非表示 最後にその他の方法は従来の Vue 開発と変わりませんが、システムと UI のやり取りについては、さらに API ドキュメントを読む必要があります。 vue3+electron12+dll クライアント開発の詳細設定に関するこの記事はこれで終わりです。vue3+electron12+dll クライアント設定に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル (一般)
>>: Centos7 での python3 のインストールとアンインストールに関するチュートリアル
公式サイトから mysql-5.7.19-winx64 をダウンロードします。これはシステムの 64...
WIN10 64ビットに最新のMySQL8.0.18をインストールダウンロード公式サイトから最新バ...
この記事では、例を使用して、MySQL クエリ ステートメントの簡単な操作を説明します。ご参考までに...
この記事では、ドロップダウンメニューを表示および非表示にするJavaScriptの具体的なコードを参...
1. イベントの簡単な紹介イベントは、MySQL が特定の時間に呼び出す手続き型データベース オブジ...
序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...
html4:コードをコピーコードは次のとおりです。 <フォーム> <p>&l...
この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...
序文count 関数は、テーブルまたは配列内のレコードをカウントするために使用されます。count(...
参考までにWindowsにMySQLをインストールします。具体的な内容は次のとおりです。 1.まずM...
クイックスタートガイドForeman インストーラーは、完全に機能する Foreman セットアップ...
1. MySQLデータベースnacos_configを作成する2. データベース nacos_con...
crontab コマンドは、Unix および Linux で定期的な実行命令を設定するために使用され...
目次コード:補充:要約する要件: 左のツリーと右のテーブル。組織ツリーでノードを選択した後、詳細ペー...
Web ページの制作では、要素の表示と非表示は非常に一般的な要件です。この記事では、要素を表示したり...