微信小游戏项目初始化清理
把微信开发者工具新建小游戏时自带的官方"打飞机"示例清理干净,得到可直接开始开发的空骨架。清理由 scripts/clean.js 确定性执行,不要手工逐个删文件。
执行
node "<SKILL_DIR>/scripts/clean.js" <项目根目录>
- 省略目录参数时默认清理当前工作目录。
- 不确定会删什么时先加
--dry-run,只看清单不落盘;确认后再正式执行。 - 执行完用微信开发者工具打开项目,即可直接编译运行。
清理结果
- 删除官方 demo 资源:
js/(databus/main/render/base/libs/npc/player/runtime)、images/(bg/hero/enemy/bullet/Common/explosion1~19)、audio/(bgm/boom/bullet)。完整清单见scripts/clean.js顶部的DEMO_FILES。 - 生成最小骨架:
game.js(入口)、js/main.js(主逻辑类)、game.json(最小运行时配置)、README.md。 - 保留不动:
project.config.json(含 AppID,绝不能删)、project.private.config.json、.eslintrc.js及其它任何非 demo 文件。
安全机制(脚本内置,不要绕过)
- 目标必须是微信小游戏:根目录有
game.json,且project.config.json的compileType为game,否则直接拒绝。 - 默认只清理"未动过的纯 demo"。以下任一成立就拒绝执行并列出差异文件:
js/ images/ audio/里出现清单外的文件;- 与 demo 同名的 js 文件内容被改过(按 sha256 校验,不误删用户代码);
game.js不是官方示例入口、game.json与官方默认不一致。- 图片/音频按文件名识别(demo 资源一般不会被修改);不确定会删什么时先
--dry-run核对清单,确认后再正式执行。 - 拒绝后的出路:差异是用户文件 → 保留项目手工处理;差异只是新版微信 demo 的示例文件 → 把新文件路径加进
DEMO_FILES、把新 js 内容哈希(拒绝信息里有)更新进DEMO_JS后重跑。 --force:跳过上述检查,删除所有 demo 文件(清单外文件保留),并把game.js/game.json重置为骨架。README.md:仅当内容是官方示例(含"示例游戏")时才替换;用户自写的 README 一律保留。- 重复运行是幂等的:已清理过的项目再次运行不会做任何改动。