⛳
Tauri + Next.js + TypeScriptで開発する準備
Rust+JSでデスクトップアプリの開発が出来るTaruiで開発する環境を作ったのでメモ。とはいえ環境を作った
といってもほぼやることはなくて、雛形作ってLintやVSCodeの設定を整えるだけだった。特に難しいことはない。
プロジェクト作成
$ npm create tauri-app
✔ Project name · try-tauri
✔ Choose your package manager · npm
✔ Choose your UI template · next-ts
-
npm create tauri-app
をすると雛形を作れる。 -
Choose your package manager
ではcargo
やyarn
などから好きなものを選ぶ。- ただ、
cargo
を選ぶとフロントエンドはVanilla
かyew
の2種類のみになるので微妙かも。普通にnpm
で良さそう。
- ただ、
-
Choose your UI template
はnpm
かyarn
を選べばVanilla
,React
,Vue
はもちろんSvelte
,Preact
,Next
まで沢山あって便利。 - 今回はNext.js + TypeScriptにしたいので
next-ts
を選んだ。これで準備の99%は完了。
実行
下記を実行するとHello WorldのGUIが立ち上がる。
$ npm run tauri dev
初回はコンパイルが終わるまで結構時間がかかるので注意。
lintやformatterの整備
フロントエンド用のLintやFormatterなどの設定。
.prettierrc.js
module.exports = {
singleQuote: true,
semi: false,
trailingComma: "none",
};
.prettierignore
package.json
package-lock.json
eslintのインストール。
$ npm install -D eslint eslint-config-next
.eslintrc.json
{
"extends": "next/core-web-vitals"
}
VSCodeの設定
{
"editor.formatOnSave": true,
"editor.inlayHints.fontFamily": "Courier New",
"editor.inlayHints.fontSize": 14,
"workbench.colorCustomizations": {
"editorInlayHint.foreground": "#868686f0",
"editorInlayHint.background": "#3d3d3d48",
"editorInlayHint.typeForeground": "#fdb6fdf0",
"editorInlayHint.parameterForeground": "#fdb6fdf0"
},
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true
},
"[toml]": {
"editor.formatOnSave": false
},
"rust-analyzer.linkedProjects": [
"/Home/dev/src-tauri/Cargo.toml" <= ここは絶対指定のPATHでCargo.tomlまで含めて記述しないとだめ
]
}
- 色とかHintsのサイズとかはお好み。
-
code .
でプロジェクトのルートで開いて開発する場合は"rust-analyzer.linkedProjects"
でCargo.toml
の場所を指定してあげないとエラーが出る。 - あとtomlで
editor.formatOnSave
をfalseにしてるのは.prettierignoreがサブディレクトリのCargo.tomlに効かないから。
その他ちょっとしたハマりどころ
VSCodeでエラー
デフォルトだとVSCode側でsrc-tauri/src/main.rs
にて下記のエラーが発生してる。
proc macro panicked
message: The `distDir` configuration is set to `"../dist"` but this path doesn't exist
-
dist
ディレクトリをプロジェクトのルートに作成すれば消える
release buildでエラー
- 雛形作成したままの状態でrelease buildを作成しようとするとエラーが出る。
-
tauri.config.json
に記述されているicon.icnc
がプロジェクトにないので失敗するっぽい。 - これはMacApp用のアイコンっぽいんだけど別になくてもビルドはできるのでここの記述は消しちゃってbuildしても良さそう。必要なら
icon.icnc
を頑張って作る。
リソース
-
Build smaller, faster, and more secure desktop applications with a web frontend | Tauri Apps
- 公式サイト
-
tauri-apps/create-tauri-app: Rapidly scaffold out a new tauri app project.
- プロジェクト作成のCLI
-
Rust GUI の決定版! Tauri を使ってクロスプラットフォームなデスクトップアプリを作ろう
- ちょうど良い感じのTauriのTutorialがZenn Bookにあったので載せておく。
Discussion