# HorseJs
**Repository Path**: lemongeek/horsejs
## Basic Information
- **Project Name**: HorseJs
- **Description**: 使用HTML/JS/CSS创建更快速、更稳定的桌面应用
- **Primary Language**: C++
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 52
- **Created**: 2021-12-14
- **Last Updated**: 2023-01-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
健壮 | 优雅 | 迅捷
使用 HTML/JS/CSS 创建更快速、更稳定的桌面应用。
QQ交流群:650631559;微信公众号:桌面软件
# 说明
HorseJs 是一个与 Electron 类似的框架,与 Electron 不同的是它没有内置 Node.js,而是直接使用 C++ 提供了大部分 Electron 的能力,比如使用 JavaScript 访问文件、打开对话框、创建新窗口等。由于没有 Node.js,所以 HorseJs 运行速度更快、占用内存更少、稳定性也更高。
HorseJs 可以直接加载 webpack 或 Rollup 构建的任何前端项目,由于这些构建工具会把 npm 包内的代码捆扎到你的最终产物中,所以开发者可以在这类项目中使用任何 npm 包,HorseJs 并不排斥 Node.js 的生态。
使用 HorseJs 开发应用,不必考虑任何渲染进程、主进程以及这些进程之间通信的问题。因为这些工作 HorseJs 已经帮开发者做掉了。开发者只要专注自己的业务逻辑即可。
# 起步
## 第一步
下载 [HorseJs](https://gitee.com/horsejs/horsejs/releases) 的二进制文件(扩展名为 7z 的压缩包)解压后,启动压缩包内的 HorseJs.exe,进入 Demo 界面可以看到随 SDK 附带的各种 API 的示例;
## 第二步
在你的前端工程下执行如下指令安装 HorseJs 的 npm 包
```cmd
npm install horsejs.org
```
之后你就可以使用如下方式调用 HorseJs 为你提供的 API 了
```js
import { horse } from "horsejs.org";
await horse.window.openDevTool();
```
> HorseJs 的 npm 包并非原生模块,无需本地编译;支持 TypeScirpt 类型
>
> 你可以自由的使用 Vue、React、Angular 或者其他的现代前端框架构建你的前端项目
## 第三步
修改第一步中下载的文件:HorseJs\app\horse.config.json
使其 startPath 配置项指向你的调试地址,比如:
```url
"startPath": "http://localhost:3000/"
```
再次启动 HorseJs.exe,观察你的调试页面在 HorseJs 下的表现
> HorseJs 内置 Chromium 浏览器核心,支持热更新,你可以把它当做一个浏览器
## 第四步
开发完成后,把你的前端工程构建产物 ,放置到 HorseJs\app\ 目录下,(该目录下原有的文件,除 horse.config.json 外均应删除),并再次修改 horse.config.json 的 startPath 配置项,使其指向你的起始页面,比如:
```url
"startPath": "app/index.html"
```
## 第五步
你可以使用 [Resource Hacker](http://angusj.com/resourcehacker/) 之类的工具修改 HorseJs.exe 的图标或属性信息;
你可以使用 [NSIS](https://nsis.sourceforge.io/) 或 [InnoSetup](https://jrsoftware.org/isinfo.php) 之类的工具把 HorseJs 目录下的内容制作成一个安装文件,分发给你的用户;
> 以后我会提供相应的工具链方便开发者使用它们
# 文档
- [配置文件](Doc/Config.md)
- [全局对象](Doc/Horse.md)
- [基础信息](Doc/Horse/Info.md)
- [窗口控制](Doc/Horse/Window.md)
- [对话框](Doc/Horse/Dialog.md)
- [剪切板](Doc/Horse/Clipboard.md)
- [文件](Doc/Horse/File.md)
- [路径](Doc/Horse/Path.md)
- [系统](Doc/Horse/System.md)
- [菜单](Doc/Horse/Menu.md)
- [托盘图标](Doc/Horse/Tray.md)
- [数据库](Doc/Horse/Db.md)
- [原生插件](Doc/Horse/Plugin.md)
- [可拖拽区域](Doc/AppRegion.md)
- [源码构建指南](Doc/HorseJsBuild.md)
- [升级记录](Doc/Update.md)
# 其他
1. 本项目基于 MIT 协议开源,大家可以放心使用;
2. 目前此项目尚处于实验验证阶段,将来我会逐步为其添加各项功能及辅助的工具;
3. 欢迎并感谢大家提 Issue 和 Pull Request;
4. 本项目基于 cef 和 wxWidgets 开发,大量参考了 Electron 、Node.js、 Chromium 的源码,Thanks。
# 赞助
微信收款码
> 如果赞助者希望把名字添加到 HorseJs 主页,可以通过 QQ (412588801)联系我