# 教育工程化基础框架

svn://192.168.10.168/qsedu/code/00.common/02.front-end-component/06.edu-scripts/trunk

v2 版本底层的打包工具从 webpack 迁移至 rspack，速度快了3-10x

## 运行条件

nodejs 版本至少 18+

## 快速体验

执行下面的命令，快速建立一个最小的应用模版，支持 [教育集成 与 独立项目模式](/mode)

```shell
# npm 安装
npm create @qse/edu-app@latest

# 或者 yarn 安装
yarn create @qse/edu-app@latest

# 或者 pnpm 安装
pnpm create @qse/edu-app@latest
```

## 安装

如果你的项目还在使用 require.ensure，请使用 v1.15.0 版本

第一次使用这个框架，请看[老项目接入流程](/refactor)

```shell
npm i @qse/edu-scripts -D
```

## 用法

`edu-scripts` 可以使用缩写 `edu`，在手写命令行时方便使用

```shell
# 开发
edu-scripts start
# 开发指定端口 默认3000
edu-scripts start --port 5000

# 打包
edu-scripts build
# 打包并分析
edu-scripts build --analyze
# 打包并导出 html 文件
edu-scripts build --output-html

# 部署代码 校端
edu-scripts deploy -s
# 部署代码 局端
edu-scripts deploy -b
# 部署代码 公文端
edu-scripts deploy -d
# 部署代码 校端 + 局端 + 公文端
edu-scripts deploy -s -b -d

# 生成 override 文件
edu-scripts generator override
# 自动生成代码 可使用 npx edu-scripts generator page -h 查看具体效果
edu-scripts generator page --name <module-name>
# 生成 tailwind 配置
edu-scripts generator tailwind
# 生成 tsconfig 配置
edu-scripts generator ts

# SVN 提交 dist 到 dist 分支上
edu-scripts commit-dist
# SVN 提交 dist 到 dist 分支上，并且删除本地 dist
edu-scripts commit-dist --rm-local
```

## ENV 环境变量

| 参数    | 默认值 | 说明         |
| ------- | ------ | ------------ |
| PORT    | 3000   | 启动端口     |
| ANALYZE | false  | 开启打包分析 |

## 自定义配置

```shell
# 创建 edu-scripts.override.js 文件
npx edu-scripts g override
```

具体看[override](/override)

### 自定义 antd 样式

如果不需要，可以跳过

根目录生成 `theme.js` 或 `theme.json`

```js
export default {
  '@primary-color': '#99f',
}
```

```json
{
  "@primary-color": "#99f"
}
```
