# gm **Repository Path**: MOS1/gm ## Basic Information - **Project Name**: gm - **Description**: test for egret es6 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-08-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gm #### 介绍 先说下背景,年初至今就是在用egret + electron开发网游的编辑器。 这个项目初衷是为了网游写服务器的gm和运维工具,比如:gm可能回答游戏中玩家的问题,发公告;运维可以重启服务器,热更新脚本。 首先判断,功能不多,页面不多,属于小的应用;并且自己人使用,不需要打包各种平台版本,没有在release进行测试;不属于开发游戏的尝试,所以如果是开发游戏,请一定深思是否合适。 当时陷入了选择障碍,服务器端的框架很多比如egg,nest等,最终直接用了koa,求简单。 客户端也有很多框架比如vue,AngularJS,ReactJS等,最终选择了用egret,原因: 1. 感觉egret的eui一套比html+css要简单,并且也比较熟悉 2. 在1的基础上,egret提供了可视化的ui编辑器,比code html简单 但是egret最大的弱势是无法像传统的javascript开发支持npm,npm i xxxlib 即可使用;非要自己封装一下,挂在Window上;感觉很傻,升级了又怎么办? 但是到了5.3.8版本,使用webpack打包之后,这个问题终于烟消云散。 #### 安装教程 git clone https://gitee.com/MOS1/gm.git 1. 首先安装egret版本 >= 5.3.8 此时需要修改你本地安装的egret 5.3.8的build脚本("egret/engine/5.3.8/tools/commands/build.ts"),把对package.json的检查注释掉。 ```typescript if (packageJsonContent = FileUtil.read(project.projectData.getFilePath("package.json"))) ``` 修改了build.ts文件之后,需要在上一级目录执行tsc编译 2. npm i 3. egret build #### 代码说明 1. 修改tsconfig.json 添加 "module": "commonjs", 2. 见DlgLogin.ts ```typescript import axios from 'axios'; ... var md5 = require('md5'); ``` 经过测试import和require都正常 3. 见Main.ts 为了测试reflect,加了一个comboBox的类,注册在Window下即可使用 #### 联想 1. egret支持npm之后,是否不限于游戏,在开发前端上也不失为一个利器呢: 1. 上手简单 2. 工具链完整 3. 支持移动端 4. 在动画渲染和资源管理上也有优势 2. egret支持npm之后,那么开发者就可以通过npmjs.com来共享代码(比如comboBox就是例子),而不是在一个论坛里发工程了,这必将大大推动egret的发展。