这是一个命令行工具,帮助你切换条件块之间的代码,
这是 VS Code 中的效果
安装
npm install -g conditional-compile-helper
使用方法,在打开项目的VS Code的终端执行以下命令即可
define-cli
更多用法可以查看帮助
define-cli -h
特色功能
-
用法与 C# 的编译参数一样,支持 #if、#elif、#else、#endif
-
支持嵌套
3.支持测试模式,只打印信息,不修改代码,大胆试,不怕搞错
4.利用现有的VS Code插件 Better Comments,可以做到上图的代码着色效果
5.它是命令行工具,非常容易集成到你现有的构建工作流当中,可以完全契合你的一键多渠道打包的能力
6.极高的性能,处理400个文件 、10万行代码只需要1-2秒的时间
7.安全性,内置解析器会充分验证你的编译条件,不规范的写法报错提示,不会乱来
8.逻辑简单,工具只会在你的代码前面加注释符、或者去掉注释符,不会弄丢你任何一行代码
9.支持2.x 和 3.x 的 Cocos 项目、支持Laya项目、或者其他纯TypeScript项目、支持 Flutter / Dart 项目。
只所以会奇怪的支持 Flutter / Dart 项目,因为这个命令行工具就是用Dart开发的。
原理说明:
1.利用 ast-grep 读取代码,解析并提取包含条件编译的单行注释(推荐一下开源的 ast-grep )
2.拆分代码块
3.通过逻辑解析器求解条件语句,比如这种复杂的条件 #if (XIAOMI || OPPO) && !VIVO
4.执行注释或者取消注释条件控制的代码
集成到现有的构建流程中,主要有两种方式
两种方式都是需要在正式构建前,先执行 define-cli 命令,当 define-cli 命令的退出码为0时就进入下一步构建,如果 define-cli 退出码不为0,那么说明条件编译存在错误,停止构建。查看输出的错误信息解决了之后再执行构建即可
上述的文档是3.x的版本,2.x的也是类似,切换到对应版本的文档查看就可以了