cocos2d-cli 2.0.0 → 2.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.
@@ -1,25 +1,25 @@
1
- {
2
- "01e12Vix3xPZaV9rG8NNMhT": "CharacterAnimation",
3
- "0c1120T6UNNk5mllwLCpN0/": "GameScene",
4
- "0c5a3bepqdAUZOCSqDOe7tX": "StageManager",
5
- "166a2V/C3pMsLYQh5Cfhh0M": "Tile",
6
- "1777aIKiDVM2ayJgXQsFRbc": "InfoNode",
7
- "2000bQ16aVPOowsYmWzQHBl": "TilemapCamera",
8
- "25dfekurxJEpa4v3Hll7c7S": "PlayerController",
9
- "2a19dBOCe1GUpzKNfMsQQR7": "Pathfinder",
10
- "329ecFYmkpK+ZTeUQlUmyHq": "MapCharacter",
11
- "36c13QGxrxExoOv5anzjyRj": "EventManager",
12
- "394e4Gg6E1Dh6AedkHAFZH+": "index",
13
- "3cc7eQO1TZPTYTHr3v/2h1L": "SceneScript",
14
- "42cc8kWoTtFHqEMb8ClTUBk": "GameExpressionEvaluator",
15
- "7541bC/enRKeocYItojXgyK": "Gamepiece",
16
- "781adeySrdN27K4uANiWTCT": "MinimapRenderer",
17
- "9701aXPPNhO2IJ1bgr/25pJ": "PlayerManager",
18
- "a4e62KPZVNEbZO1mvkzyOQt": "FilmEffect",
19
- "a4ff8dbnCJNsLLBFaNYXrQp": "Player",
20
- "a89e2IVZx5Bn50oCifRT+GC": "Gameboard",
21
- "c4069o+d29NprrTzmS9V1Mb": "ResourceManager",
22
- "e0920R8VWpPOpxr0VnPlCqA": "GamepieceRegistry",
23
- "e24c1oXqIpLvqqgMFn+zl3A": "Tilemap",
24
- "f07feXxRJVMj7Vg6tTtIi+T": "index"
25
- }
1
+ {
2
+ "01e12Vix3xPZaV9rG8NNMhT": "CharacterAnimation",
3
+ "0c1120T6UNNk5mllwLCpN0/": "GameScene",
4
+ "0c5a3bepqdAUZOCSqDOe7tX": "StageManager",
5
+ "166a2V/C3pMsLYQh5Cfhh0M": "Tile",
6
+ "1777aIKiDVM2ayJgXQsFRbc": "InfoNode",
7
+ "2000bQ16aVPOowsYmWzQHBl": "TilemapCamera",
8
+ "25dfekurxJEpa4v3Hll7c7S": "PlayerController",
9
+ "2a19dBOCe1GUpzKNfMsQQR7": "Pathfinder",
10
+ "329ecFYmkpK+ZTeUQlUmyHq": "MapCharacter",
11
+ "36c13QGxrxExoOv5anzjyRj": "EventManager",
12
+ "394e4Gg6E1Dh6AedkHAFZH+": "index",
13
+ "3cc7eQO1TZPTYTHr3v/2h1L": "SceneScript",
14
+ "42cc8kWoTtFHqEMb8ClTUBk": "GameExpressionEvaluator",
15
+ "7541bC/enRKeocYItojXgyK": "Gamepiece",
16
+ "781adeySrdN27K4uANiWTCT": "MinimapRenderer",
17
+ "9701aXPPNhO2IJ1bgr/25pJ": "PlayerManager",
18
+ "a4e62KPZVNEbZO1mvkzyOQt": "FilmEffect",
19
+ "a4ff8dbnCJNsLLBFaNYXrQp": "Player",
20
+ "a89e2IVZx5Bn50oCifRT+GC": "Gameboard",
21
+ "c4069o+d29NprrTzmS9V1Mb": "ResourceManager",
22
+ "e0920R8VWpPOpxr0VnPlCqA": "GamepieceRegistry",
23
+ "e24c1oXqIpLvqqgMFn+zl3A": "Tilemap",
24
+ "f07feXxRJVMj7Vg6tTtIi+T": "index"
25
+ }
@@ -18,25 +18,25 @@ const commands = {
18
18
  'screenshot': '../src/commands/screenshot.js'
19
19
  };
20
20
  function showHelp() {
21
- console.log(`
22
- Cocos Creator CLI - 场景/预制体操作工具集
23
-
24
- 用法:
25
- cocos2d-cli <command> [options]
26
-
27
- 命令:
28
- tree <场景.fire | 预制体.prefab> 查看节点树
29
- get <场景.fire | 预制体.prefab> <节点路径> [属性名|组件类型] 获取节点或组件属性
30
- set <场景.fire | 预制体.prefab> <节点路径> <属性名> <值> 修改节点属性
31
- set-component <文件> <节点路径> <组件类型> <属性名> <值> 修改组件属性
32
- add <场景.fire | 预制体.prefab> <父节点路径> <名称> 添加节点
33
- add-component <文件> <节点路径> <类型> 给节点添加组件
34
- remove-component <文件> <节点路径> <类型> 删除节点组件
35
- remove <文件> <节点路径> 删除节点
36
- build <项目目录> 构建组件映射
37
- create-prefab [JSON文件路径] <输出.prefab> 创建预制体
38
- create-scene [JSON文件路径] <输出.fire> 创建场景
39
- screenshot <json文件> [选项] 渲染JSON并截图
21
+ console.log(`
22
+ Cocos Creator CLI - 场景/预制体操作工具集
23
+
24
+ 用法:
25
+ cocos2d-cli <command> [options]
26
+
27
+ 命令:
28
+ tree <场景.fire | 预制体.prefab> 查看节点树
29
+ get <场景.fire | 预制体.prefab> <节点路径> [属性名|组件类型] 获取节点或组件属性
30
+ set <场景.fire | 预制体.prefab> <节点路径> <属性名> <值> 修改节点属性
31
+ set-component <文件> <节点路径> <组件类型> <属性名> <值> 修改组件属性
32
+ add <场景.fire | 预制体.prefab> <父节点路径> <名称> 添加节点
33
+ add-component <文件> <节点路径> <类型> 给节点添加组件
34
+ remove-component <文件> <节点路径> <类型> 删除节点组件
35
+ remove <文件> <节点路径> 删除节点
36
+ build <项目目录> 构建组件映射
37
+ create-prefab [JSON文件路径] <输出.prefab> 创建预制体
38
+ create-scene [JSON文件路径] <输出.fire> 创建场景
39
+ screenshot <json文件> [选项] 渲染JSON并截图
40
40
  `);
41
41
  }
42
42
  const args = process.argv.slice(2);
@@ -13,8 +13,7 @@ const DEFAULT_CONFIG = {
13
13
  waitTime: 1000
14
14
  };
15
15
  function getAssetsDir() {
16
- const projectRoot = process.cwd();
17
- return path.join(projectRoot, 'src', 'lib', 'screenshot');
16
+ return path.join(__dirname, '..', '..', '..', 'data', 'screenshot');
18
17
  }
19
18
  async function createTempWorkDir() {
20
19
  const tempBase = process.env.TEMP || process.env.TMP || '/tmp';
@@ -107,6 +106,29 @@ async function removeDir(dirPath, logs) {
107
106
  }
108
107
  }
109
108
  }
109
+ async function launchBrowser(addLog) {
110
+ try {
111
+ addLog('info', 'Launching Playwright Chromium');
112
+ const browser = await chromium.launch({
113
+ headless: true,
114
+ });
115
+ addLog('info', 'Browser launched with Playwright Chromium');
116
+ return browser;
117
+ }
118
+ catch (error) {
119
+ const message = String(error?.message || error);
120
+ if (!message.includes("Executable doesn't exist")) {
121
+ throw error;
122
+ }
123
+ addLog('warn', 'Playwright Chromium not found, falling back to system Edge');
124
+ const browser = await chromium.launch({
125
+ channel: 'msedge',
126
+ headless: true,
127
+ });
128
+ addLog('info', 'Browser launched with system Edge');
129
+ return browser;
130
+ }
131
+ }
110
132
  export async function takeScreenshot(userConfig = {}) {
111
133
  const config = { ...DEFAULT_CONFIG, ...userConfig };
112
134
  if (!config.jsonPath) {
@@ -148,9 +170,7 @@ export async function takeScreenshot(userConfig = {}) {
148
170
  const serverUrl = `http://127.0.0.1:${address.port}`;
149
171
  addLog('info', `Server: ${serverUrl}`);
150
172
  addLog('info', 'Launching Browser');
151
- browser = await chromium.launch({
152
- headless: true
153
- });
173
+ browser = await launchBrowser(addLog);
154
174
  addLog('info', 'Browser launched');
155
175
  const page = await browser.newPage({
156
176
  viewport: config.viewport
package/package.json CHANGED
@@ -1,40 +1,40 @@
1
- {
2
- "name": "cocos2d-cli",
3
- "version": "2.0.0",
4
- "description": "Command-line tools for AI to read and manipulate Cocos Creator 2.4.x project scenes",
5
- "type": "module",
6
- "main": "dist/bin/cocos2d-cli.js",
7
- "bin": {
8
- "cocos2d-cli": "dist/bin/cocos2d-cli.js"
9
- },
10
- "files": [
11
- "dist",
12
- "data"
13
- ],
14
- "scripts": {
15
- "build": "tsc",
16
- "watch": "tsc --watch",
17
- "prepare": "npm run build",
18
- "test": "echo \"No tests specified\" && exit 1"
19
- },
20
- "keywords": [
21
- "cocos",
22
- "cocos-creator",
23
- "cli",
24
- "scene",
25
- "fire",
26
- "screenshot"
27
- ],
28
- "author": "",
29
- "license": "MIT",
30
- "engines": {
31
- "node": ">=18.0.0"
32
- },
33
- "dependencies": {
34
- "playwright": "^1.58.2"
35
- },
36
- "devDependencies": {
37
- "@types/node": "^22.15.17",
38
- "typescript": "^5.9.3"
39
- }
40
- }
1
+ {
2
+ "name": "cocos2d-cli",
3
+ "version": "2.1.1",
4
+ "description": "Command-line tools for AI to read and manipulate Cocos Creator 2.4.x project scenes",
5
+ "type": "module",
6
+ "main": "dist/bin/cocos2d-cli.js",
7
+ "bin": {
8
+ "cocos2d-cli": "dist/bin/cocos2d-cli.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "data"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "watch": "tsc --watch",
17
+ "prepare": "npm run build",
18
+ "test": "echo \"No tests specified\" && exit 1"
19
+ },
20
+ "keywords": [
21
+ "cocos",
22
+ "cocos-creator",
23
+ "cli",
24
+ "scene",
25
+ "fire",
26
+ "screenshot"
27
+ ],
28
+ "author": "",
29
+ "license": "MIT",
30
+ "engines": {
31
+ "node": ">=18.0.0"
32
+ },
33
+ "dependencies": {
34
+ "playwright": "^1.58.2"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^22.15.17",
38
+ "typescript": "^5.9.3"
39
+ }
40
+ }