Skip to content

Commit a092565

Browse files
authored
feat: add preact & preact-ts templates back (#455)
* feat: Add Preact & Preact-TS templates * docs: Add changeset * fix: Missed template matrix script * chore: Reorder templates * chore: Satisfy TS * chore: More template reordering * Update add-preact-templates.md
1 parent 426f48d commit a092565

34 files changed

Lines changed: 586 additions & 0 deletions

.changes/add-preact-templates.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"create-tauri-app": minor
3+
"create-tauri-app-js": minor
4+
---
5+
6+
Adds `preact` and `preact-ts` templates.

.scripts/generate-templates-matrix.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ const nodeJsTemplates = [
1212
"react-ts",
1313
"vanilla",
1414
"vanilla-ts",
15+
"preact",
16+
"preact-ts",
1517
];
1618

1719
const matrixConfig = [
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "~package_name~",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc && vite build",
9+
"preview": "vite preview",
10+
"tauri": "tauri"
11+
},
12+
"dependencies": {
13+
"preact": "^10.16.0",
14+
"@tauri-apps/api": "^2.0.0-alpha.4",
15+
"@tauri-apps/plugin-window": "^2.0.0-alpha.0",
16+
"@tauri-apps/plugin-shell": "^2.0.0-alpha.0"
17+
},
18+
"devDependencies": {
19+
"@types/node": "^18.7.10",
20+
"@preact/preset-vite": "^2.5.0",
21+
"typescript": "^4.9.5",
22+
"vite": "^4.2.1",
23+
"@tauri-apps/cli": "^2.0.0-alpha.9"
24+
}
25+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "~package_name~",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc && vite build",
9+
"preview": "vite preview",
10+
"tauri": "tauri"
11+
},
12+
"dependencies": {
13+
"preact": "^10.16.0",
14+
"@tauri-apps/api": "^2.0.0-alpha.4",
15+
"@tauri-apps/plugin-window": "^2.0.0-alpha.0",
16+
"@tauri-apps/plugin-shell": "^2.0.0-alpha.0"
17+
},
18+
"devDependencies": {
19+
"@types/node": "^18.7.10",
20+
"@preact/preset-vite": "^2.5.0",
21+
"typescript": "^4.9.5",
22+
"vite": "^4.2.1",
23+
"@tauri-apps/cli": "^2.0.0-alpha.9",
24+
"internal-ip": "^7.0.0"
25+
}
26+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { defineConfig } from "vite";
2+
import preact from "@preact/preset-vite";
3+
import { internalIpV4 } from "internal-ip";
4+
5+
const mobile =
6+
process.env.TAURI_PLATFORM === "android" ||
7+
process.env.TAURI_PLATFORM === "ios";
8+
9+
// https://vitejs.dev/config/
10+
export default defineConfig(async () => ({
11+
plugins: [preact()],
12+
13+
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
14+
// prevent vite from obscuring rust errors
15+
clearScreen: false,
16+
// tauri expects a fixed port, fail if that port is not available
17+
server: {
18+
host: mobile ? "0.0.0.0" : false,
19+
port: 1420,
20+
hmr: mobile
21+
? {
22+
protocol: "ws",
23+
host: await internalIpV4(),
24+
port: 1421,
25+
}
26+
: undefined,
27+
strictPort: true,
28+
},
29+
// to make use of `TAURI_DEBUG` and other env variables
30+
// https://tauri.studio/v1/api/config#buildconfig.beforedevcommand
31+
envPrefix: ["VITE_", "TAURI_"],
32+
build: {
33+
// Tauri supports es2021
34+
target: process.env.TAURI_PLATFORM == "windows" ? "chrome105" : "safari13",
35+
// don't minify for debug builds
36+
minify: !process.env.TAURI_DEBUG ? "esbuild" : false,
37+
// produce sourcemaps for debug builds
38+
sourcemap: !!process.env.TAURI_DEBUG,
39+
},
40+
}));
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "~package_name~",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc && vite build",
9+
"preview": "vite preview",
10+
"tauri": "tauri"
11+
},
12+
"dependencies": {
13+
"preact": "^10.16.0",
14+
"@tauri-apps/api": "^1.4.0"
15+
},
16+
"devDependencies": {
17+
"@types/node": "^18.7.10",
18+
"@preact/preset-vite": "^2.5.0",
19+
"typescript": "^4.9.5",
20+
"vite": "^4.2.1",
21+
"@tauri-apps/cli": "^1.4.0"
22+
}
23+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { defineConfig } from "vite";
2+
import preact from "@preact/preset-vite";
3+
4+
// https://vitejs.dev/config/
5+
export default defineConfig(async () => ({
6+
plugins: [preact()],
7+
8+
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
9+
// prevent vite from obscuring rust errors
10+
clearScreen: false,
11+
// tauri expects a fixed port, fail if that port is not available
12+
server: {
13+
port: 1420,
14+
strictPort: true,
15+
},
16+
// to make use of `TAURI_DEBUG` and other env variables
17+
// https://tauri.studio/v1/api/config#buildconfig.beforedevcommand
18+
envPrefix: ["VITE_", "TAURI_"],
19+
build: {
20+
// Tauri supports es2021
21+
target: process.env.TAURI_PLATFORM == "windows" ? "chrome105" : "safari13",
22+
// don't minify for debug builds
23+
minify: !process.env.TAURI_DEBUG ? "esbuild" : false,
24+
// produce sourcemaps for debug builds
25+
sourcemap: !!process.env.TAURI_DEBUG,
26+
},
27+
}));
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"]
3+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Tauri + Preact + Typescript
2+
3+
This template should help get you started developing with Tauri, Preact and Typescript in Vite.
4+
5+
## Recommended IDE Setup
6+
7+
- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)

0 commit comments

Comments
 (0)