@ttmg/cli 0.1.2-beta.1 → 0.1.3-beta.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/CHANGELOG.md +5 -0
- package/README.md +72 -0
- package/dist/index.js +16 -7
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
package/README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
## @ttmg/cli
|
|
2
|
+
|
|
3
|
+
`ttmg` 是一个用于管理和开发小游戏项目的命令行工具,支持 H5 小游戏和原生小游戏的初始化、开发调试和打包构建。
|
|
4
|
+
|
|
5
|
+
### 安装
|
|
6
|
+
|
|
7
|
+
你可以通过 npm 本地安装或全局安装:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
npm install @ttmg/cli -g
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
或者在项目中作为开发依赖:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
npm install @ttmg/cli --save-dev
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 使用方法
|
|
20
|
+
|
|
21
|
+
安装后,可以在命令行中使用 `ttmg` 命令。
|
|
22
|
+
|
|
23
|
+
#### 查看帮助
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
ttmg --help
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### 命令说明
|
|
30
|
+
|
|
31
|
+
##### 1. 初始化项目
|
|
32
|
+
|
|
33
|
+
- 对基于游戏引擎构建好的 H5 小游戏进行初始化
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
ttmg init --h5
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- 对基于游戏引擎构建好的 Native 小游戏进行初始化
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
ttmg init --native
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
##### 2. 开发调试
|
|
46
|
+
|
|
47
|
+
启动本地开发环境,打开浏览器进行调试。
|
|
48
|
+
|
|
49
|
+
- H5 小游戏调试
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
ttmg dev --h5
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
- 原生小游戏调试
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
ttmg dev --native
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
##### 3. 项目打包
|
|
62
|
+
|
|
63
|
+
打包项目用于发布。
|
|
64
|
+
|
|
65
|
+
- 打包 H5 小游戏
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
ttmg build --h5
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- 打包原生小游戏
|
|
72
|
+
ttmg build --native
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var chromeLauncher = require('chrome-launcher');
|
|
|
14
14
|
var os = require('os');
|
|
15
15
|
var child_process = require('child_process');
|
|
16
16
|
var https = require('https');
|
|
17
|
+
var semver = require('semver');
|
|
17
18
|
var require$$6 = require('crypto');
|
|
18
19
|
var require$$5$1 = require('archiver');
|
|
19
20
|
var multer = require('multer');
|
|
@@ -383,12 +384,22 @@ async function checkUpdate() {
|
|
|
383
384
|
const boxen = (await import('boxen')).default;
|
|
384
385
|
const pkgName = '@ttmg/cli';
|
|
385
386
|
const oldVersion = getGlobalVersion(pkgName);
|
|
386
|
-
const newVersion = await getLatestVersion(pkgName);
|
|
387
|
+
const newVersion = (await getLatestVersion(pkgName));
|
|
387
388
|
if (!oldVersion) {
|
|
388
389
|
console.log(chalk.yellow(`未检测到全局安装的 ${pkgName}`));
|
|
389
390
|
return;
|
|
390
391
|
}
|
|
391
392
|
if (oldVersion !== newVersion) {
|
|
393
|
+
const oldVersionIsBeta = oldVersion.includes('beta');
|
|
394
|
+
const newVersionIsBeta = newVersion.includes('beta');
|
|
395
|
+
if (oldVersionIsBeta && newVersionIsBeta) {
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
const oldVersionMajor = semver.major(oldVersion);
|
|
399
|
+
const newVersionMajor = semver.major(newVersion);
|
|
400
|
+
if (oldVersionIsBeta && oldVersionMajor >= newVersionMajor) {
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
392
403
|
const message = `
|
|
393
404
|
${chalk.bold('Update available!')} ${chalk.red(oldVersion)} ${chalk.white('→')} ${chalk.green(newVersion)}.
|
|
394
405
|
${chalk.magenta('Changelog:')} ${chalk.cyan(`https://npmjs.com/package/${pkgName}/v/${newVersion}`)}
|
|
@@ -951,7 +962,7 @@ async function createServer() {
|
|
|
951
962
|
});
|
|
952
963
|
// 启动服务
|
|
953
964
|
server = app.listen(port, () => {
|
|
954
|
-
console.log(chalk.cyan.bold(`Node devServer is running on port ${port}`));
|
|
965
|
+
console.log(chalk.cyan.bold(`Node devServer is running on port ${port}\n`));
|
|
955
966
|
});
|
|
956
967
|
return {
|
|
957
968
|
port,
|
|
@@ -1267,9 +1278,7 @@ async function showSchema() {
|
|
|
1267
1278
|
console.log(` 2. ${chalk.yellow.bold('Will auto upload compiled resource to client.')} ${chalk.bold(outputDir)}`);
|
|
1268
1279
|
console.log(` 3. ${chalk.yellow.bold('Debug your game in the browser.')}\n`);
|
|
1269
1280
|
const schema = `https://www.tiktok.com/ttmg/dev/${clientKey}?host=${localIP}&port=${DEV_WS_PORT}`;
|
|
1270
|
-
QRCode.toString(schema, { type: 'terminal',
|
|
1271
|
-
if (err)
|
|
1272
|
-
throw err;
|
|
1281
|
+
QRCode.toString(schema, { type: 'terminal', small: true }, (err, qr) => {
|
|
1273
1282
|
console.log(qr);
|
|
1274
1283
|
});
|
|
1275
1284
|
}
|
|
@@ -1278,7 +1287,7 @@ async function dev() {
|
|
|
1278
1287
|
/**
|
|
1279
1288
|
* 1. 准备游戏资源
|
|
1280
1289
|
*/
|
|
1281
|
-
|
|
1290
|
+
prepareResource();
|
|
1282
1291
|
/**
|
|
1283
1292
|
* 2. 创建本地调试服务
|
|
1284
1293
|
*/
|
|
@@ -1293,7 +1302,7 @@ async function dev() {
|
|
|
1293
1302
|
await watchChange();
|
|
1294
1303
|
}
|
|
1295
1304
|
|
|
1296
|
-
var version = "0.1.
|
|
1305
|
+
var version = "0.1.3-beta.1";
|
|
1297
1306
|
var pkg = {
|
|
1298
1307
|
version: version};
|
|
1299
1308
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttmg/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3-beta.1",
|
|
4
4
|
"description": "TikTok Mini Game Command Line Tool",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"bin": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"open": "^10.2.0",
|
|
43
43
|
"prettier": "^3.6.2",
|
|
44
44
|
"qrcode": "^1.5.4",
|
|
45
|
-
"
|
|
46
|
-
"ttmg-pack": "0.0.
|
|
45
|
+
"semver": "^7.7.2",
|
|
46
|
+
"ttmg-pack": "0.0.25",
|
|
47
47
|
"ws": "^8.18.3"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|