create-gametau 0.1.0-alpha.5 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -0
- package/dist/cli.js +38 -2
- package/dist/cli.js.map +1 -1
- package/package.json +2 -1
- package/templates/base/gitignore +13 -0
- package/templates/base/package.json +2 -2
- package/templates/base/src-tauri/commands/Cargo.toml +1 -1
- package/templates/base/src-tauri/wasm/Cargo.toml +1 -1
- package/templates/pixi/package.json +2 -2
- package/templates/three/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# create-gametau
|
|
2
|
+
|
|
3
|
+
Scaffold a Rust game project that runs both as a native Tauri app and as a web build (WASM) from one codebase.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bunx create-gametau my-game
|
|
9
|
+
cd my-game
|
|
10
|
+
bun install
|
|
11
|
+
bun run dev
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Templates
|
|
15
|
+
|
|
16
|
+
- `three` (default) - Three.js rendering starter
|
|
17
|
+
- `pixi` - PixiJS rendering starter
|
|
18
|
+
- `vanilla` - Canvas 2D starter
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
bunx create-gametau my-game --template pixi
|
|
22
|
+
bunx create-gametau my-game --template vanilla
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## CLI Options
|
|
26
|
+
|
|
27
|
+
- `--template`, `-t` - Choose scaffold template (`three`, `pixi`, `vanilla`)
|
|
28
|
+
- `--help`, `-h` - Show help output
|
|
29
|
+
- `--version`, `-v` - Print CLI version
|
|
30
|
+
|
|
31
|
+
## What gets scaffolded
|
|
32
|
+
|
|
33
|
+
- `src-tauri/core` - pure Rust game logic
|
|
34
|
+
- `src-tauri/commands` - shared command definitions for desktop + web
|
|
35
|
+
- `src-tauri/app` - Tauri desktop shell
|
|
36
|
+
- `src-tauri/wasm` - WASM entry crate
|
|
37
|
+
- `src` - frontend app wired to `webtau` and `webtau-vite`
|
|
38
|
+
|
|
39
|
+
For full docs and package details, see the main repository:
|
|
40
|
+
https://github.com/devallibus/gametau
|
package/dist/cli.js
CHANGED
|
@@ -7,10 +7,20 @@
|
|
|
7
7
|
* bunx create-gametau my-game --template pixi
|
|
8
8
|
* bunx create-gametau my-game --template vanilla
|
|
9
9
|
*/
|
|
10
|
-
import { mkdirSync, writeFileSync, existsSync, readdirSync, readFileSync, cpSync } from "fs";
|
|
10
|
+
import { mkdirSync, writeFileSync, existsSync, readdirSync, readFileSync, cpSync, renameSync, } from "fs";
|
|
11
11
|
import { join, resolve, dirname } from "path";
|
|
12
12
|
import { fileURLToPath } from "url";
|
|
13
13
|
const TEMPLATES = ["three", "pixi", "vanilla"];
|
|
14
|
+
function getPackageVersion() {
|
|
15
|
+
try {
|
|
16
|
+
const packageJsonPath = new URL("../package.json", import.meta.url);
|
|
17
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
18
|
+
return packageJson.version ?? "unknown";
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return "unknown";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
14
24
|
function parseArgs(args) {
|
|
15
25
|
const positional = [];
|
|
16
26
|
let template = "three";
|
|
@@ -29,7 +39,16 @@ function parseArgs(args) {
|
|
|
29
39
|
printHelp();
|
|
30
40
|
process.exit(0);
|
|
31
41
|
}
|
|
32
|
-
else if (
|
|
42
|
+
else if (arg === "--version" || arg === "-v") {
|
|
43
|
+
console.log(`create-gametau ${getPackageVersion()}`);
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
|
46
|
+
else if (arg.startsWith("-")) {
|
|
47
|
+
console.error(`Unknown option: ${arg}`);
|
|
48
|
+
console.error("Run with --help to see available options.");
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
33
52
|
positional.push(arg);
|
|
34
53
|
}
|
|
35
54
|
}
|
|
@@ -50,6 +69,7 @@ Usage:
|
|
|
50
69
|
Options:
|
|
51
70
|
--template, -t Template to use: three (default), pixi, vanilla
|
|
52
71
|
--help, -h Show this help message
|
|
72
|
+
--version, -v Show CLI version
|
|
53
73
|
|
|
54
74
|
Examples:
|
|
55
75
|
bunx create-gametau my-game
|
|
@@ -85,9 +105,25 @@ export function scaffold(options, cwd) {
|
|
|
85
105
|
if (existsSync(overlayDir)) {
|
|
86
106
|
cpSync(overlayDir, targetDir, { recursive: true });
|
|
87
107
|
}
|
|
108
|
+
// npm strips dotfiles named .gitignore / .npmignore from tarballs.
|
|
109
|
+
// Templates store the file as "gitignore" (no dot) and we rename it here.
|
|
110
|
+
renameTemplateGitignore(targetDir);
|
|
88
111
|
// Replace {{PROJECT_NAME}} placeholders
|
|
89
112
|
replaceInDir(targetDir, "{{PROJECT_NAME}}", projectName);
|
|
90
113
|
}
|
|
114
|
+
function renameTemplateGitignore(dir) {
|
|
115
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
116
|
+
for (const entry of entries) {
|
|
117
|
+
const fullPath = join(dir, entry.name);
|
|
118
|
+
if (entry.isDirectory()) {
|
|
119
|
+
renameTemplateGitignore(fullPath);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (entry.name === "gitignore") {
|
|
123
|
+
renameSync(fullPath, join(dir, ".gitignore"));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
91
127
|
function replaceInDir(dir, search, replace) {
|
|
92
128
|
const entries = readdirSync(dir, { withFileTypes: true });
|
|
93
129
|
for (const entry of entries) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-gametau",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Scaffold a Tauri game that deploys to web + desktop",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
20
|
"build": "tsc",
|
|
21
|
+
"prepack": "npm run build",
|
|
21
22
|
"test": "bun test",
|
|
22
23
|
"typecheck": "tsc --noEmit"
|
|
23
24
|
},
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
"preview": "vite preview"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"webtau": "^0.1.0
|
|
14
|
+
"webtau": "^0.1.0"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"typescript": "^5.8.0",
|
|
18
18
|
"vite": "^6.0.0",
|
|
19
|
-
"webtau-vite": "^0.1.0
|
|
19
|
+
"webtau-vite": "^0.1.0",
|
|
20
20
|
"@tauri-apps/cli": "^2.0.0",
|
|
21
21
|
"@tauri-apps/api": "^2.0.0"
|
|
22
22
|
}
|
|
@@ -10,7 +10,7 @@ crate-type = ["cdylib"]
|
|
|
10
10
|
wasm-bindgen = "0.2"
|
|
11
11
|
serde = { version = "1", features = ["derive"] }
|
|
12
12
|
serde-wasm-bindgen = "0.6"
|
|
13
|
-
webtau = "0.1
|
|
13
|
+
webtau = "0.1"
|
|
14
14
|
{{PROJECT_NAME}}-core = { path = "../core" }
|
|
15
15
|
{{PROJECT_NAME}}-commands = { path = "../commands" }
|
|
16
16
|
|
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"pixi.js": "^8.0.0",
|
|
15
|
-
"webtau": "^0.1.0
|
|
15
|
+
"webtau": "^0.1.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"typescript": "^5.8.0",
|
|
19
19
|
"vite": "^6.0.0",
|
|
20
|
-
"webtau-vite": "^0.1.0
|
|
20
|
+
"webtau-vite": "^0.1.0",
|
|
21
21
|
"@tauri-apps/cli": "^2.0.0",
|
|
22
22
|
"@tauri-apps/api": "^2.0.0"
|
|
23
23
|
}
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"three": "^0.172.0",
|
|
15
|
-
"webtau": "^0.1.0
|
|
15
|
+
"webtau": "^0.1.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/three": "^0.172.0",
|
|
19
19
|
"typescript": "^5.8.0",
|
|
20
20
|
"vite": "^6.0.0",
|
|
21
|
-
"webtau-vite": "^0.1.0
|
|
21
|
+
"webtau-vite": "^0.1.0",
|
|
22
22
|
"@tauri-apps/cli": "^2.0.0",
|
|
23
23
|
"@tauri-apps/api": "^2.0.0"
|
|
24
24
|
}
|