001code-html
系灵丌编程(001CODE)前端项目。
## scratch-gui 本地开发
- 目录位置:`scratch-gui\`
- Node 版本建议:`>= 18`,`npm >= 9`(Windows)
### 安装依赖
```bash
cd scratch-gui
```
```bash
npm ci
```
### 启动开发服务器
```bash
npm start
```
### 生产构建
```bash
npm run build
```
## 与子包联动(npm link)
`scratch-gui` 依赖内部包:`scratch-vm`、`scratch-blocks`。为在本地联动开发它们的改动,使用 `npm link`。
> 提示:每个子包先安装依赖并构建,再 `npm link`。在 `scratch-gui` 中再链接对应包名。
### 链接 scratch-vm
```bash
cd scratch-vm
```
```bash
npm install
```
```bash
npm link
```
### 链接 scratch-blocks
```bash
cd scratch-blocks
```
```bash
npm install
```
```bash
npm link
```
### scratch-gui 链接 scratch-blocks scratch-vm
```bash
cd ..\scratch-gui
```
```bash
npm link scratch-blocks scratch-vm
```
### 解除链接(恢复使用包管理器安装的版本)
```bash
cd scratch-gui
```
```bash
npm unlink scratch-vm
```
```bash
npm unlink scratch-render
```
```bash
npm unlink scratch-blocks
```
```bash
npm unlink scratch-l10n
```
```bash
npm i
```
## Docker 运行期配置(可选)
- 通过 `/env.config.json` 注入运行时配置(例如 `API_BASE` / `DEPLOY_ENV`),ENTRYPOINT 启动时替换占位符。
- 开发环境如果未启用 Docker:`env.config.json` 仍为占位时,前端会自动回退读取 `process.env.*`。
常见问题
- 若容器启动失败提示找不到入口脚本,确认 Dockerfile 已 `COPY docker-conf/entrypoint.sh` 并 `chmod +x`,且无 CRLF 行尾。
- 确保静态服务器对 `/env.config.json` 返回 `Content-Type: application/json`,并避免 SPA 重写。