Vue3.js(Tauri vue3 vuetity) から始めるディスクトップアプリ#1 [初めてのプロジェクト作成]
はじめに
Windows用アプリを作る場合、自分は、VB/C#(.net)やC++だと思っていました。実際にC#(Wpf)でアプリ制作をすすめていたのですが、wpfのUIコントロールの拡張を現代風のUIデザインで仕上げるためには、膨大な時間を要します。また、UIMAやUWFなどなど、乱立する規格に分けわからなくなります。結局 WinFromでいいじゃんとなり、ふと気が付くのです。作りたいのはこんなんじゃない!!!
Windows用アプリを作成するなら、Electron と Tauriが視野に入ります。
Electronは、情報量多いので検索が得意であれば困らないと思いますが、Tauriは、2022/7 にVer1.0となったばかりでいろいろ困りそうなので、記事にしながら進めます。
Step0 Tauri導入にあたり
本記事は、windows11にTauriを導入します。
・HTML/CSS/JavaScript
・React フレームワーク Next.js
・SvelteKitフロントエンド フレームワーク
・フロントエンド ビルド ツールVite
・既存 Web プロジェクト
慣れないうちは、HTML/CSS/JavaScriptと記載ありますが、自分はVite(Vue3)を使って構築します。
Step1 Rust の導入
Microsoft Visual Studio C++の導入
まず最初に、Microsoft Visual Studio C++ ビルド ツールをインストールします。
下記のオプションを選択します。
WebView2の導入
WebView2 は Windows11 にプリインストールされていますので、自分は不要。
Windows10 の方は下記を参考にしてください。
Rust インストーラー
下記より、必要な資材をダウンロードしてください。
ダウンロードした、rustup-init.exeを実行してください。
”1”を入力してリターンで基本OKです。
お疲れさまでした。
Step2 ViteAPPのスタートアップ
プロジェクト設定
下記のサイトを見ながら進めました。
自分の環境は下記を使っています。
・VisualStadioCode
・bash(Git for Windows)
保存したいフォルダに移動して下記のコマンドを投入します。
$ yarn create vite
yarn create v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "create-vite@3.2.1" with binaries:
- create-vite
- cva
√ Project name: ... myProject
√ Package name: ... myproject
√ Select a framework: » Vue
√ Select a variant: » TypeScript
Scaffolding project in D:\Project\tauri\myProject...
Done. Now run:
cd myProject
yarn
yarn dev
Done in 122.32s.
Project name: 好きなプロジェクト名を入力してください。今回は myProjectです。
Package name: 好きなパッケージ名を入力してください。今回は myProjectです。
Select a framework: » vanillaがデフォルトです。今回は、Vueを選択しました。
Select a variant: » TypeScriptを選択しました。お好みで。
viteの起動
cd myProject
yarn
yarn dev
と順番に入力します。
$ cd myProject/
$ yarn
yarn install v1.22.19
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 9.21s.
$ yarn dev
yarn run v1.22.19
$ vite
VITE v3.2.4 ready in 249 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
この動作が通常のViteです。
Step3 Tauriの導入
Tauriの導入の準備
上記で作成したプロジェクトにTauriを導入する準備をします。
vite.config.ts の修正
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue' //ここ①
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()] //ここ②
})
上記を下記のように修正します。①②をVueを指定しています。他のフレームワークの場合ここをチェックしてください。
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue' //ここ①
export default defineConfig({
// vue plugin-vue ここ②
plugins: [vue()],
// prevent vite from obscuring rust errors
clearScreen: false,
// Tauri expects a fixed port, fail if that port is not available
server: {
strictPort: true,
},
// to make use of `TAURI_PLATFORM`, `TAURI_ARCH`, `TAURI_FAMILY`,
// `TAURI_PLATFORM_VERSION`, `TAURI_PLATFORM_TYPE` and `TAURI_DEBUG`
// env variables
envPrefix: ['VITE_', 'TAURI_'],
build: {
// Tauri supports es2021
target: ['es2021', 'chrome100', 'safari13'],
// don't minify for debug builds
minify: !process.env.TAURI_DEBUG ? 'esbuild' : false,
// produce sourcemaps for debug builds
sourcemap: !!process.env.TAURI_DEBUG,
},
})
環境変数のあたりでエラーとなりますが、気にしないで。パッケージが足りていないですが、支障ないので先に進めます。
Tauriの導入
yarn add -D @tauri-apps/cli コマンドを投入します。
$ yarn add -D @tauri-apps/cli
yarn add v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 2 new dependencies.
info Direct dependencies
└─ @tauri-apps/cli@1.2.1
info All dependencies
├─ @tauri-apps/cli-win32-x64-msvc@1.2.1
└─ @tauri-apps/cli@1.2.1
Done in 3.54s.
次にTauriのプロジェクト作成
$ yarn tauri init
yarn run v1.22.19
$ D:\Project\tauri\myProject\node_modules\.bin\tauri init
✔ What is your app name? · myproject
✔ What should the window title be? · myproject
✔ Where are your web assets (HTML/CSS/JS) located, relative to the "<current dir>/src-tauri/tauri.conf.json" file that will be created? · ../dist
✔ What is the url of your dev server? · http://localhost:5173
✔ What is your frontend dev command? · yarn dev
✔ What is your frontend build command? · yarn build
Done in 154.08s.
・What is your app name? プロジェクト名を指定しました。
・What should the window title be? プロジェクト名を指定しました。
・Where are your web assets (HTML/CSS/JS) located, relative to the "<current dir>/src-tauri/tauri.conf.json" file that will be created? · ../dist 保存先です。
✔ What is the url of your dev server? · http://localhost:5173 viteのアドレスを指定
✔ What is your frontend dev command? · yarn dev yarnに書き換え
✔ What is your frontend build command? · yarn build yarnに書き換え
Tauriによる起動
yarn tauri dev を投入します。
$ yarn tauri dev
yarn run v1.22.19
$ D:\Project\tauri\myProject\node_modules\.bin\tauri dev
Running BeforeDevCommand (`yarn dev`)
$ vite
VITE v3.2.4 ready in 248 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
Info Watching D:\Project\tauri\myProject\src-tauri for changes...
Updating crates.io index
Downloaded wry v0.22.5
Downloaded 1 crate (2.1 MB) in 1.29s
Compiling proc-macro2 v1.0.47
Compiling unicode-ident v1.0.5
~ 略 ~
Compiling tauri-macros v1.2.1
Compiling app v0.1.0 (D:\Project\tauri\myProject\src-tauri)
Compiling webview2-com v0.19.1
Finished dev [unoptimized + debuginfo] target(s) in 1m 00s
Step4 Tauri起動
起動したかな?
お疲れさまでした。
あとがき
参考にしていただければ幸いです。誤った記述などあれば教えてください。
Discussion