---
description: E10 前端项目初始化、编译检查与补丁包构建
---

# E10 前端补丁

## 初始化

前端新需求，或当前目录不存在完整 e-code 前端项目工程时，必须先执行初始化。禁止
绕过脚手架只创建单个业务文件。只有修改当前已存在的完整项目时，才可跳过重复初始化。

业务源码只允许 `.js`；禁止创建或输出 `.jsx`、`.ts`、`.tsx`，禁止引入 TypeScript
配置、类型语法或构建链。

`resources/` 只允许存放资源文件、图片、字体、样式资源、第三方 JS 库等静态资源。
AI 生成的前端业务代码、入口代码、组件代码、工具代码和配置代码禁止放入
`resources/`；入口代码使用根目录 `entry.js`，组件和工具代码按需放入 `coms/`、
`utils/` 等源码目录。

```bash
node .ecode/skills/e10-frontend-local-tooling/scripts/ecodecmd-e10/bin/ecodecmd-e10.mjs init ./apps --project-name demo
```

生成 `resources/`、`config/`、`entry.js` 和 `build.json`。已有目录默认不覆盖。

初始化后按需求补充：

```text
project/
├── entry.js
├── config/
├── resources/
├── coms/       # 有业务组件时
├── styles/     # 有独立样式时
└── utils/      # 有复用工具时
```

`entry.js` 只放注册和轻量判断。页面组件放非前置文件。交付时明确列出仍需配置的 appId、业务 ID/编码、字段 dataKey、接口 URL 和发布范围。

## 编译检查

```bash
node .ecode/skills/e10-frontend-local-tooling/scripts/ecodecmd-e10/bin/ecodecmd-e10.mjs compile ./apps/demo
```

忽略 `resources`、`.target`、`.ecode-runtime` 和 `.git`。检查 JavaScript、JSX、对象展开与可选链。

## 构建

```bash
node .ecode/skills/e10-frontend-local-tooling/scripts/ecodecmd-e10/bin/ecodecmd-e10.mjs build ./apps/demo
```

构建读取 `build.json`，将 JS 编译为 E10 JSONP 模块，生成 `.target/<UUID>.zip`。命令等待 ZIP 完成后退出。

构建后至少验证：

```bash
unzip -l ./apps/demo/.target/*.zip
```

ZIP 根目录必须包含一个 32 位大写十六进制目录，`ecode.json` 位于该目录内：

```text
<UUID>.zip
└── <UUID>/
    └── ecode.json
```

存在静态资源时，资源必须放在根模块 ID 下的 `${resources` 目录中。目录名末尾
没有右花括号，这是 E10 导入包的固定格式，不得改成 `${resources}`：

```text
<UUID>/
├── ecode.json
└── <rootFolderId>/
    └── ${resources/
        └── <resource-file>
```
