JoyCoder命令行工厂
快捷命令行#
脚手架到用户之间的桥梁,摆脱脚手架命令行需要记忆和拼参的烦恼。

官方工作区目前支持的命令:
- 发布Beta版本npm包到京东源:自动根据semver规范生产beta版本号然后触发npm publish
- 支持快捷使用 Leo 脚手架中的命令行(目录下存在leo配置文件时才会出现菜单)
note
此功能是从JoyCoder配置后台配置而来,有较好的扩展性,几乎可以通过配置覆盖所有的脚手架工具和命令行场景。比如京喜与新业务研发部工作区目前支持的场景有:
- H5 单页Dev、H5 单页Release
- 京喜微信小程序(Wxa) 单页Dev
- 微信小程序(Taro) 单页Dev
- 微信小程序(Taro) 整体Build
- 京东小程序(拼拼Taro) 单页Dev
- 京东小程序(拼拼Taro) 整体Build
自定义命令行#
在某些复杂场景下,我们需要同时触发多个命令。JoyCoder也支持特定场景下需要执行多个命令的场景,基于目录下的joycoder.config.json配置文件,JoyCoder将按配置的方式串行或并行来执行相应编译

配置说明#
在某个目录下新建配置文件名称:joycoder.config.json
JSON数组格式、当只有一项配置时,直接执行对应命令,当有多项配置时,会打开对话框选择具体要执行的其中一项配置。
- label: 自定义命令的名称,只有展示作用,无逻辑
- mode: serial/parallel,serial表示串行,每个命令会在上个命令执行结束后进行,parallel表示并行,每个命令会单独开启新的命令行窗口
- list: 命令的集合
- workDirectory: 执行命令的目录,
@开始为当前项目根目录(含有.git的目录),/开始为绝对路径,./或者../为相对路径- script: 具体执行的命令
- timeout: 当前命令延迟执行的时间,单位秒
- workDirectory: 执行命令的目录,
配置示例#
// jxapp/src/pages/jdreserve/joycoder.config.json{ "customCommand": [ { "label": "抽取编译京喜团任务相关页面", "mode": "parallel", "list": [ { "workDirectory": "@/", "script": "npm run dev:wxapp -- -p pages/jdreserve/task/index/index,pages/jdreserve/task/invite-new/index/index" }, { "workDirectory": "@/wxapp", "script": "npm run watch:pg -- -p pages/jdreserve/task/index/index,pages/jdreserve/task/invite-new/index/index", "timeout": 20 } ] }, { "label": "H5(SPA)本地Dev编译京喜团页面", "mode": "serial", "list": [ { "workDirectory": "@/", "script": "npm run build:h5 -- --page pages/jdreserve/index/index --spa --watch" } ] } ]}字段说明#
| 字段 | ||
|---|---|---|
| label | - | 自定义编译子项名称 |
| mode | - | 模式 serial:串行 parallel:并行 |
| list | workDirectory | 工作目录,支持绝对路径(如:\xxx\xxx)、以当前配置文件为基准的相对路径(如:..\xxx\xxx)、以当前项目根目录为基准的相对路径(如:@\xxx\xxx) |
| list | script | 执行脚本 如:npm run watch:pg -- -p pages/jdreserve/task/index/index |
| list | timeout | 此命令延迟多长时间执行(单位秒),通常用于命令之间有依赖的场景,比如以上案例中的 timeout 就表示customCommand[0].list[0].script执行20秒后再执行customCommand[0].list[1].script |