cancorleone-cancorteaw-app

TotalClaw 作者 totalclaw

本地 Expo / React Native 应用构建运行器。通过白名单脚本安全创建应用、添加页面并启动 Web 预览。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw skills install shop:totalclaw:totalclaw~cancorleone-cancorteaw-app
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~cancorleone-cancorteaw-app/file -o cancorleone-cancorteaw-app.md
## 概述(中文)

本地 Expo / React Native 应用构建运行器。通过白名单脚本安全创建应用、添加页面并启动 Web 预览。

## 技能正文

# cancorteaw-app

本地 **Expo / React Native** 应用构建运行器。

本技能是**受控运行器**,仅执行白名单脚本:
`/home/patron/apps/_bin/appctl`  
该脚本限制在以下路径操作:
`/home/patron/apps/<project>`。

## 功能

本技能封装 `appctl`,提供安全、可重复的工作流:

- 在 `/home/patron/apps/<name>` **创建** 新 Expo 应用脚手架
- 在 `/home/patron/apps/<name>/app/<Screen>.tsx` **添加页面**
- **启动 Web 预览**(`expo start --web`),绑定 `127.0.0.1` 与指定端口
- **检查** 预览进程状态

## 命令

### 1) 创建新应用
**命令:**
- `new <name>`

**示例:**
- `new demoapp`

**结果:**
- 创建 `/home/patron/apps/demoapp`
- 初始化 git(尽力而为)
- 非交互模式使用 `npx create-expo-app`

---

### 2) 添加页面
**命令:**
- `add-screen <name> <screenName> <title>`

**示例:**
- `add-screen demoapp Settings "Settings"`

**结果:**
- 写入:`/home/patron/apps/demoapp/app/Settings.tsx`
- 尽力 git commit

---

### 3) 启动 Web 预览
**命令:**
- `preview <name>`

**环境:**
- `EXPO_PORT`(可选):覆盖预览端口  
  默认:`19006`

**示例:**
- `preview demoapp`
- `EXPO_PORT=19010 preview demoapp`

**结果:**
- 启动 `npx expo start --web --port <port>`
- 日志:`/home/patron/apps/_logs/<name>.preview.log`
- pid:`/home/patron/apps/_state/<name>.pid`
- 端口:`/home/patron/apps/_state/<name>.port`

---

### 4) 状态
**命令:**
- `status <name>`

**示例:**
- `status demoapp`

**结果:**
- 进程存活则打印 RUNNING 与 URL
- 否则打印 STOPPED

## 安全 / 护栏

- 运行器**白名单**:仅可调用 `node`、`npm`、`npx`、`git`、`bash`、`python3`。
- 所有项目路径限制在 `/home/patron/apps`。
- 预览绑定 `127.0.0.1`(回环)。需外网访问请显式 SSH 隧道。
- 预览禁用 Expo 遥测(`EXPO_NO_TELEMETRY=1`)。

## 故障排除

- `preview` 显示运行但页面不加载:检查 `/home/patron/apps/_logs/` 日志。
- 端口占用:设置空闲 `EXPO_PORT` 后重跑 `preview`。
- 停止预览:`kill $(cat /home/patron/apps/_state/<name>.pid)`(若 pid 存在)。