feat: scaffold Tauri v2 + Vite + TypeScript project

This commit is contained in:
Your Name
2026-02-19 01:23:27 +02:00
parent 47d4409bcc
commit 24746bb33d
12 changed files with 164 additions and 0 deletions

19
package.json Normal file
View File

@@ -0,0 +1,19 @@
{
"name": "tutorialdock",
"private": true,
"version": "0.1.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"tauri": "tauri"
},
"dependencies": {
"@tauri-apps/api": "^2.0.0"
},
"devDependencies": {
"@tauri-apps/cli": "^2.0.0",
"typescript": "^5.3.0",
"vite": "^5.0.0"
}
}

29
src-tauri/Cargo.toml Normal file
View File

@@ -0,0 +1,29 @@
[package]
name = "tutorialdock"
version = "0.1.0"
description = "TutorialDock - Video Tutorial Library Manager"
authors = []
edition = "2021"
[lib]
name = "tutorialdock_lib"
crate-type = ["lib", "cdylib", "staticlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = ["protocol-asset"] }
tauri-plugin-dialog = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.10"
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", features = ["stream"] }
zip = "2"
which = "7"
regex = "1"
once_cell = "1"
[dev-dependencies]
tempfile = "3"

3
src-tauri/build.rs Normal file
View File

@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}

View File

@@ -0,0 +1,10 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Default capabilities for TutorialDock",
"windows": ["main"],
"permissions": [
"core:default",
"dialog:default"
]
}

7
src-tauri/src/lib.rs Normal file
View File

@@ -0,0 +1,7 @@
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_dialog::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}

5
src-tauri/src/main.rs Normal file
View File

@@ -0,0 +1,5 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
fn main() {
tutorialdock_lib::run();
}

40
src-tauri/tauri.conf.json Normal file
View File

@@ -0,0 +1,40 @@
{
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-utils/schema.json",
"productName": "TutorialDock",
"version": "0.1.0",
"identifier": "com.tutorialdock.app",
"build": {
"devUrl": "http://localhost:1420",
"frontendDist": "../dist",
"beforeDevCommand": "npm run dev",
"beforeBuildCommand": "npm run build"
},
"app": {
"windows": [
{
"title": "TutorialDock",
"width": 1320,
"height": 860,
"minWidth": 640,
"minHeight": 480
}
],
"security": {
"csp": "default-src 'self'; media-src 'self' tutdock: asset: https://asset.localhost; font-src 'self' tutdock: asset: https://asset.localhost data:; style-src 'self' tutdock: asset: https://asset.localhost 'unsafe-inline'; img-src 'self' tutdock: asset: https://asset.localhost data:; script-src 'self'"
}
},
"bundle": {
"active": false,
"targets": "all",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
},
"plugins": {
"dialog": {}
}
}

14
src/index.html Normal file
View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>TutorialDock</title>
</head>
<body>
<div id="zoomRoot">
<div class="app"></div>
</div>
<script type="module" src="/main.ts"></script>
</body>
</html>

1
src/main.ts Normal file
View File

@@ -0,0 +1 @@
console.log("TutorialDock frontend loaded");

1
src/vite-env.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="vite/client" />

18
tsconfig.json Normal file
View File

@@ -0,0 +1,18 @@
{
"compilerOptions": {
"target": "ES2021",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2021", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
"strict": true,
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"]
}

17
vite.config.ts Normal file
View File

@@ -0,0 +1,17 @@
import { defineConfig } from "vite";
export default defineConfig({
root: "src",
clearScreen: false,
server: {
port: 1420,
strictPort: true,
watch: {
ignored: ["**/src-tauri/**"],
},
},
build: {
outDir: "../dist",
emptyOutDir: true,
},
});