-
Notifications
You must be signed in to change notification settings - Fork 115
$ fecs --help
$ fecs --version
名称 | 别名 | 值类型 | 默认值 | 说明 |
---|---|---|---|---|
help | h | boolean | false | 显示帮助信息 |
version | v | boolean | false | 显示 FECS 的版本信息 |
$ fecs [check] [pattern...] [options]
使用 ESLint 检查 JavaScript
代码的质量与风格。
使用 CSSHint 检查 CSS
代码的质量与风格。
使用 HTMLCS 检查 HTML
代码的质量与风格。
指定 glob
风格的文件查找模式,默认为当前工作目录下的所有 js/css/html
,也可以直接指定到具体的文件路径。
名称 | 别名 | 值类型 | 默认值 | 说明 |
---|---|---|---|---|
color | c | boolean | true | 是否使用颜色高亮 |
debug | -- | boolean | false | 是否允许直接抛出 FECS 的运行时错误 |
es | -- | number | 6 | 指定 ecmascript 版本,默认 6 为混合模式,使用 babel-eslint 解释,自动检测代码指纹,当指定为 5 时使用 eslint 默认的 parser,指定为 7 时相当于确定为 esnext |
format | -- | string | -- | 指定 check 命令的结果输出格式,支持 checkstyle,json,xml 与 html,打开 silient 时也不影响输出 |
ignore | -- | string | -- | 指定需要忽略的文件模式,多个模式可以使用多个 --ignore 指定 |
lookup | -- | boolean | false | 是否考虑所有上级目录的配置 |
level | -- | number | -- | 过滤,只剩下指定级别的错误,选值 0、1 或 2 |
lines | -- | string | -- | 过滤,只剩下指定行的错误,以[ 、] 、( 和 ) 表示数学上的开区间和闭区间,也可以直接用 > 、< 和= 的组合,允许多个条件组合,以 && 或 ` |
maxerr | -- | number | 0 | 每个文件的最大错误数,默认为 0 表示不限制 |
maxsize | -- | number | 0 | 每个文件的最大字节数,默认为 900K, 0 表示不限制 |
reporter | -- | string | -- | 指定 reporter ,内置可选值只有 baidu ,当包含 / 字符时从当前工作目录查找自定义的 reporter 实现,其它值按默认处理 |
rule | -- | boolean | false | 是否在错误信息最后显示对应的校验规则名称 |
rules | -- | string | -- | 过滤,只剩下指定的 rule 名,多个 rule 以 , 分隔 |
silent | s | boolean | false | 是否隐藏所有通过 console.log 输出的信息 |
sort | -- | boolean | false | 是否对信息按行列作升序排序 |
stream | -- | boolean | false | 是否使用 process.stdin 作为输入 |
type | -- | string | js,css,html | 指定要处理的文件类型,类型之间以 , 分隔 |
$ fecs format [pattern...] [options]
使用 fixmyjs 与 jformatter 修复与格式化 JavaScript
代码。
使用 CSSBeautify 与 CSScomb 修复与格式化 CSS
代码。
使用 HTMLCS 修复与格式化 HTML
代码。
名称 | 别名 | 值类型 | 默认值 | 说明 |
---|---|---|---|---|
debug | -- | boolean | false | 是否允许直接抛出 FECS 的运行时错误 |
fix | -- | boolean | false | 是否使用 eslint 的 fix |
format | -- | string | -- | 指定 check 命令的结果输出格式,支持 JSON,XML 与 HTML,打开 silient 时也不影响输出 |
ignore | -- | string | -- | 指定需要忽略的文件模式,多个模式可以使用多个 --ignore 指定 |
lookup | -- | boolean | false | 是否考虑所有上级目录的配置 |
output | o | string | ./output | 指定格式化后的输出目录 |
replace | -- | boolean | false | 指定格式化后是否替换原文件 |
silent | s | boolean | false | 是否隐藏所有通过 console.log 输出的信息 |
stream | -- | boolean | false | 是否使用 process.stdin 作为输入 |
type | -- | string | js,css,html | 指定要处理的文件类型,类型之间以 , 分隔 |
名称 | 别名 | 值类型 | 默认值 | 说明 |
---|---|---|---|---|
color | c | boolean | true | 是否使用颜色高亮 |
debug | -- | boolean | false | 是否允许直接抛出 FECS 的运行时错误 |
es | -- | number | 6 | 指定 ecmascript 版本,默认 6 为混合模式,使用 babel-eslint 解释,自动检测代码指纹,当指定为 5 时使用 eslint 默认的 parser,指定为 7 时相当于确定为 esnext |
fix | -- | boolean | false | 是否使用 eslint 的 fix |
format | -- | string | -- | 指定 check 命令的结果输出格式,支持 JSON,XML 与 HTML,打开 silient 时也不影响输出 |
help | h | boolean | false | 显示帮助信息 |
ignore | -- | string | -- | 指定需要忽略的文件模式,多个模式可以使用多个 --ignore 指定 |
lookup | -- | boolean | false | 是否考虑所有上级目录的配置 |
level | -- | number | -- | 过滤,只剩下指定级别的错误,选值 0、1 或 2 |
lines | -- | string | -- | 过滤,只剩下指定行的错误,以[ 、] 、( 和 ) 表示数学上的开区间和闭区间,也可以直接用 > 、<
|
maxerr | -- | number | 0 | 每个文件的最大错误数,默认为 0 表示不限制 |
maxsize | -- | number | 0 | 每个文件的最大字节数,默认为 900K, 0 表示不限制 |
output | o | string | ./output | 指定格式化后的输出目录 |
replace | -- | boolean | false | 指定格式化后是否替换原文件 |
reporter | -- | string | -- | 指定 reporter ,内置可选值只有 baidu ,当包含 / 字符时从当前工作目录查找自定义的 reporter 实现,其它值按默认处理 |
rule | -- | boolean | false | 是否在错误信息最后显示对应的校验规则名称 |
rules | -- | string | -- | 过滤,只剩下指定的 rule 名,多个 rule 以 , 分隔 |
silent | s | boolean | false | 是否隐藏所有通过 console.log 输出的信息(仅影响 JavaScript 的格式化) |
sort | -- | boolean | false | 是否对信息按行列作升序排序 |
stream | -- | boolean | false | 是否使用 process.stdin 作为输入 |
type | -- | string | js,css,html | 指定要处理的文件类型,类型之间以 , 分隔 |
version | v | boolean | false | 显示 FECS 的版本信息 |
// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
import AssetMgr from './framework/AssetMgr'; import AudioMgr from './framework/AudioMgr'; import EventMgr from './framework/EventMgr'; import ObjectPoolMgr from './framework/ObjectPoolMgr'; import TimerMgr from './framework/TimerMgr'; import UIMgr from './framework/UIMgr'; import Instance from './framework/utils/Instance'; import PropMgr from './logic/common/PropMgr'; import UserInfo from './logic/common/UserInfo'; import ArtDataMgr from './logic/data/ArtDataMgr'; import ConfigArtGroupMgr from './logic/data/ConfigArtGroupMgr'; import ConfigArtMgr from './logic/data/ConfigArtMgr'; import ConfigMgr from './logic/data/ConfigMgr'; import SaveDataMgr from './logic/data/SaveDataMgr'; import HttpLogicMgr from './logic/net/HttpLogicMgr'; import GridMgr from './logic/painting/GridMgr'; import PaintingGridDataMgr from './logic/painting/PaintingGridDataMgr'; import PaintingPaletteDataMgr from './logic/painting/PaintingPaletteDataMgr'; import StarBlinkEffectMgr from './logic/ui/effects/StarBlinkEffectMgr';
const { ccclass, property } = cc._decorator;
@ccclass export default class App extends cc.Component { static UIRoot: cc.Node = null; static timerMgr: TimerMgr = null; static eventMgr: EventMgr = null; static assetMgr: AssetMgr = null; static uiMgr: UIMgr = null; static poolMgr: ObjectPoolMgr = null; static httpMgr: HttpLogicMgr = null; static audioMgr: AudioMgr = null; static userInfo: UserInfo = null; static gridMgr: GridMgr = null; static paintingPaletteDataMgr: PaintingPaletteDataMgr = null; static saveDataMgr: SaveDataMgr = null; static paintingGridDataMgr: PaintingGridDataMgr = new PaintingGridDataMgr(); static propMgr: PropMgr = null; static artDataMgr: ArtDataMgr = null; private static configMgr: ConfigMgr = null; static configArtMgr: ConfigArtMgr = null; static configArtGroupMgr: ConfigArtGroupMgr = null;; /** * 测试网络开关 / static isOpenNetwork: boolean = true; /* * 是否是链接本地 / static isLocalNetwork: boolean = true; /* * 是否开启网络log */ static isOpenNetworkLog: boolean = true;
async onLoad() {
App.UIRoot = cc.find('Canvas/UIRoot');
// cc.debug.setDisplayStats(false);
// cc.game.setFrameRate(30)
// 注册单例
App.eventMgr = Instance.get(EventMgr);
App.timerMgr = Instance.get(TimerMgr);
App.assetMgr = Instance.get(AssetMgr);
App.poolMgr = Instance.get(ObjectPoolMgr);
App.httpMgr = Instance.get(HttpLogicMgr);
App.audioMgr = Instance.get(AudioMgr);
App.userInfo = Instance.get(UserInfo);
App.paintingGridDataMgr = Instance.get(PaintingGridDataMgr);
App.paintingPaletteDataMgr = Instance.get(PaintingPaletteDataMgr);
App.propMgr = Instance.get(PropMgr);
App.saveDataMgr = Instance.get(SaveDataMgr);
App.artDataMgr = Instance.get(ArtDataMgr);
App.gridMgr = Instance.get(GridMgr);
/** ----初始化数据库 */
const dbOk = await App.saveDataMgr.init(UserInfo.PaintingDataKey);// 增加新的数据表需要同时修改版本号
console.log('dbOk = ' + dbOk);
// App.userInfo.clearAllDatas()
/** ----加载数据 */
App.userInfo.loadData();
/** ----初始化ui管理 */
// 注册事件监听
App.eventMgr.registerOwner(UIMgr);
// 初始化ui管理类
App.uiMgr = Instance.get(UIMgr).init(App.UIRoot);
/** ----加载art数据 编辑器生成的 */
await App.artDataMgr.loadData();
await this.cacheViews(['PaintingView']);
/** ----初始化configs */
App.configMgr = Instance.get(ConfigMgr);
await App.configMgr.loadConfig('dataConfigs');
App.configArtGroupMgr = Instance.get(ConfigArtGroupMgr).init(App.configMgr.getTable('artGroup'));
App.configArtMgr = Instance.get(ConfigArtMgr).init(App.configMgr.getTable('art'));
/** ----初始化tile缓存 */
let prefab = await App.assetMgr.load('prefabs/TiledTile', cc.Prefab);
App.poolMgr.createObjectPool('TiledTile', (prefab as cc.Prefab), 110 * 110 * 4);
prefab = await App.assetMgr.loadPrefab('prefabs/StarArrayEffect');
App.poolMgr.createObjectPool('StarArrayEffect', (prefab as cc.Prefab), 110 * 110 * 4);
prefab = await App.assetMgr.loadPrefab('prefabs/StarBlinkEffect');
App.poolMgr.createObjectPool('StarBlinkEffect', (prefab as cc.Prefab), 300);
/** ----进入游戏 */
App.uiMgr.showView('HomeBottomView', 0);
cc.game.setFrameRate(30);
}
private async cacheViews(names: string[]) {
for (let index = 0; index < names.length; index++) {
const name = names[index];
const Prefab = await App.assetMgr.load(`ui/${name}`, cc.Prefab);
App.poolMgr.createObjectPool(name, (Prefab as cc.Prefab), 1);
}
}
update(dt) {
App.timerMgr.update(dt);
}
/**
* 显示绘制界面
* @param data
*/
static async GotoPainting(data: any) {
App.userInfo.paintingRecord(data.id);
App.userInfo.saveData();
await App.uiMgr.showView('PaintingView', data);
App.uiMgr.hideView('HomeBottomView');
App.uiMgr.hideView('CutImageView');
// cc.game.setFrameRate(60);
}
/**
* 回到主界面
*/
static async GotoHome() {
if (!App.uiMgr.isViewShow('HomeBottomView')) {
await App.uiMgr.showView('HomeBottomView');
}
}
}