# Changelog

本文件记?mixone 的版本变化。格式遵?[Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)，版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)?

## [0.4.0] ?2026-08-15

### 新增
- **`mixone dev` CLI 命令恢复** ?直接在项目目录运?`mixone dev` 启动开发模式，无需通过 npm scripts 中转
  - TS 项目自动检?`build:main` 脚本并先编译主进?
  - 支持 `--port` 参数指定起始端口
- **`mixone start` CLI 命令恢复** ?`mixone build` + `electron .` 一步到位，TS 项目自动编译
- **`mixone build:main` CLI 命令** ?单独编译主进?TS
- **端口自动切换** ?dev server 端口被占用时自动递增尝试下一个端口（5173 ?5174 ?...?

### 变更
- 模板 `package.json.hbs` scripts 更新?`mixone dev` / `mixone build` / `mixone start`
- 移除所?vite 配置中的 `strictPort: true`，配合端口自动切?
- `create.js` 提示文本更新为新命令
- `README.md` 全面重写，补?`mixone dev` / `mixone start` 文档

### 修复
- `templates/base/package.json.hbs` ?mixone 版本?`^0.1.0` 修正?`^0.3.0`

## [0.3.0] ?2026-08-14

### 新增
- **TypeScript 模板**：`mixone create demo --ts`（支?`vue / react / react-native-web` 三模板各?`--ts`?
  - 主进?/ preload / appConfig 改为 `.ts` 源，通过 `scripts/build-main.js`（调 `tsc`）编译为 `.js` ?electron 运行。开发期 `npm run dev` 自动?build:main 再起 dev-desktop.js
  - 渲染层根据模板分别变?`.ts` (vue router) / `.tsx` (react + rnw)，含 `declare global Window.mixone` 类型注释，渲染层 TS 代码 import 时有类型推导
  - 自动清理同名 `.js / .jsx` 防止 electron / vite 拿到旧版?
- `mixone` ?dependencies 加入 `typescript ~5.8.3`（mixone 自身只需加这一次，项目无需自行?typescript?
- `tsconfig.json` 模板：`strict: true` / `module: CommonJS` / `target: ES2022` / 仅编译主进程层（排除 src/dist?
- smoke test 新增 4 用例：覆?vue-ts / react-ts / rnw-ts 三模板生?+ 主进?.ts 取代 .js + tsconfig 内容断言 + package.json scripts ?build:main + preload.ts 暴露 bridge 类型

### 变更
- `scaffold.js` `scaffoldProject` 接受 `typescript` 选项，叠?`templates/ts-base/` ?`templates/<flavor>-ts/` 模板
- 新增 `cleanupJsSupersededByTs` 清理 `.ts` 覆盖时残留的?`.js` 文件
- `create.js` 新增 `--ts` flag 透传?`scaffoldProject`
- `package.json` ?0.2.0 ?0.3.0；依赖加 `typescript ~5.8.3`；`description` 标为 "TS-ready"

## [0.2.0] ?2026-08-14

### 新增
- `mixone list` 命令：列出可用模板与 UI ?
- `mixone` 作为库对外暴?`launchDev(options)` —?项目脚本 `scripts/dev-desktop.js` 通过 `require('mixone').launchDev()` 启动开发链路，省掉 CLI 转发开销
- 模板项目新增 `scripts/dev-desktop.js`
- **`CHANGELOG.md` / `LICENSE`** 入库，补齐商业发布元数据
- package.json 增加 `repository` / `bugs` / `homepage` / `author` / `publishConfig` 字段
- 关键词补 `bytenode / boilerplate / starter` 便于 npm 检?

### 变更
- **`mixone dev` / `mixone start` CLI 子命令已废弃**。开发改为项目脚?`npm run dev` ?`node scripts/dev-desktop.js` ?`require('mixone').launchDev()`；生产模式以 `electron .` 启动。`mixone dev` / `mixone start` 调用会提示并退出非零码
- 启动链路重构：mixone ?CLI 进程内直?spawn vite dev server（不?electron），轮询就绪后再 spawn electron 连接 `MIXONE_DEV_SERVER_URL`，闪?+ 主窗口并行加载。HMR 完整保留，electron / vite 任一退?mixone 自动回收两进程，不留孤儿
- 主进程模?`main.js.hbs` 不再自行 spawn vite，改为读 `MIXONE_DEV_SERVER_URL` 直连 dev server
- 生成项目 `package.json` scripts 结构?
  - `dev`: `node scripts/dev-desktop.js`
  - `build`: `mixone build`
  - `start`: `npm run build && electron .`
- `engines.node` 放宽?`>=20.19.0`（移?`^20.19.0` 上限）——兼容仍处于 LTS 末期?Node 20 用户，不再因上限装包失败

### 修复
- README ?105 行机制描述与实现不符（说"内嵌 vite"实际?electron 主进?spawn 系统 node ?vite）：已同步为?launcher 模式
- `findViteBin` ?mixoneDir→项?cwd 回退的双路径解析，避免依赖提升到顶层 node_modules 时找不到 vite bin

## [0.1.0] ?2026

### 新增
- mixone 首个发布版本
- `mixone create` / `mixone dev` / `mixone build` / `mixone start` / `mixone add` / `mixone doctor` CLI 命令
- 三模板：`vue` (Vue 3 + vue-router) / `react` (React 19 + react-router) / `react-native-web` (RN 组件渲染到浏览器)
- 七个可?UI 库模板：vue 风（element-plus / ant-design-vue / naive-ui / vuetify），react 风（antd / mui / mantine?
- 内置桥接：`window.mixone.window.{open,openModal,close,minimize,maximize,isMaximized}`
- 依赖收敛：vue / react / react-dom / react-native-web / vite / ?plugin / electron 全部?mixone 提供，生成项?package.json 只有一项依?
- 缓存隔离：`appConfig.js` ?userData/sessionData/chromium-cache 重定向到 `%TEMP%/<包名>`，避免多实例冲突
- 闪屏 + 主窗口无缝切?
- `mixone add electron-builder` 一键加入打包配?
