1 | # dingtalk-cli-pro
|
2 | 🌋 可插拔的企业级工具开发框架,同时支持 Window 和 Mac 平台
|
3 |
|
4 | ## 简介
|
5 | 🏄♂ dingtalk-cli-pro 支持自定义命令行插件开发,对插件从 `生成 -> 开发 -> 调试 -> 发布 -> 安装` 进行生命周期管理, 让开发者 `1s` 钟开发出自己的插件,提高生产效率,成为闪电侠⚡️
|
6 |
|
7 | ## 特性
|
8 |
|
9 | - 📦 **开箱即用**,内置 `dev`, `build`, `generator` 和 `publish`等系统命令行
|
10 | - 🎉 **插件体系**,支持自定义命令行插件开发, 覆盖从 生成 -> 开发 -> 调试 -> 发布 -> 安装 的插件开发生命周期
|
11 | - ⛄️ **内置脚手架工具**,工具内置 `plugin` 和 `scaffold` 模板,让开发者轻松开发 `自定义插件` 以及 `项目开发脚手架`
|
12 |
|
13 | ## 系统命令
|
14 |
|
15 | ```
|
16 | Usage: dpro [options] [command]
|
17 |
|
18 | Options:
|
19 | -h, --help output usage information
|
20 |
|
21 | Commands:
|
22 | dev|d ️️️️Start Local Development
|
23 | build|b [options] Build App On Local
|
24 | generator|g Create Your Plugin OR Generator
|
25 | publish|p [options] Publish Your App To Daily OR Online
|
26 | ```
|
27 |
|
28 | ## 快速上手
|
29 | `dpro` 命令为 `dingtalk-cli-pro` 命令的简写,开发者可以直接使用简化命令行 `dpro` 运行命令行工具
|
30 |
|
31 | ### 安装工具
|
32 | Window PC 推荐使用 `yarn` 安装
|
33 |
|
34 | ```
|
35 | $ yarn global add dingtalk-cli-pro # 或者 npm install -g dingtalk-cli-pro
|
36 | ```
|
37 |
|
38 | ```
|
39 | # 查看工具
|
40 | $ dpro --help
|
41 |
|
42 | # 项目开发
|
43 | $ dpro dev
|
44 |
|
45 | # 项目本地打包
|
46 | $ dpro build
|
47 |
|
48 | # 项目云端构建
|
49 | $ dpro p -d # 预发环境
|
50 | $ dpro p -o # 线上环境
|
51 | ```
|
52 |
|
53 | ### 使用插件
|
54 |
|
55 | ```
|
56 | # 安装插件
|
57 | $ yarn global add dingtalk-plugin-helloworld # 或者 npm install -g dingtalk-plugin-helloworld
|
58 |
|
59 | # 运行插件
|
60 | $ dpro hellworld
|
61 |
|
62 | ```
|
63 |
|
64 | >
|
65 | [dingtalk-plugin-helloworld 插件源码](https://www.npmjs.com/package/dingtalk-plugin-helloworld)
|
66 |
|
67 | ### 开发插件
|
68 |
|
69 | ```
|
70 | # 安装工具
|
71 | $ yarn global add dingtalk-cli-pro # 或者 npm install -g dingtalk-cli-pro
|
72 |
|
73 | # 安装插件
|
74 | $ dpro g ## 可交互命令行,按步骤操作
|
75 |
|
76 | # 开发插件
|
77 | $ vi index.js
|
78 |
|
79 | ```
|
80 |
|
81 | ## 使用案例
|
82 |
|
83 | ![](https://img.alicdn.com/tfs/TB1AxyXeUKF3KVjSZFEXXXExFXa-654-442.gif)
|
84 |
|
85 |
|
86 | ## 代码案例
|
87 | ```js
|
88 |
|
89 | module.exports = function(dingtalk) {
|
90 | /**
|
91 | * 命令行工具
|
92 | * @see https://www.npmjs.com/package/commander
|
93 | */
|
94 | // 可以使用 dingtalk or this 作用域
|
95 | dingtalk
|
96 | // 注册插件命令 $ dpro helloworld
|
97 | .registryCommand('helloworld')
|
98 | // 插件命令描述
|
99 | .description('welcome to dpro')
|
100 | // 运行命令回调
|
101 | .action(() => {
|
102 | this.log.warn(`Hi ${this.getGitUserInfo().username}, Welcome to dpro`);
|
103 | });
|
104 | }
|
105 |
|
106 | ```
|
107 |
|
108 | ## API 接口
|
109 |
|
110 | ### 文件模块
|
111 | `dintalk.fs|this.fs`上下文对象, [Mem-fs-editor API参考文档](https://www.npmjs.com/package/mem-fs-editor)
|
112 |
|
113 | ### 命令行模块
|
114 | `dingtalk.registryCommand|this.registryCommand`上下文对象, [Commander API 参考文档](https://www.npmjs.com/package/commander)
|
115 |
|
116 | ### 可交互模块
|
117 | `dingtalk.prompt|this.prompt`上下文对象, [Inquirer API 参考文档](https://www.npmjs.com/package/inquirer)
|
118 |
|
119 | ### 日志模块
|
120 | `dingtalk.log|this.log`上下文对象, [Log API 参考文档](lib/log.js)
|
121 |
|
122 |
|
123 | ## License
|
124 |
|
125 | [MIT](https://github.com/umijs/umi/blob/master/LICENSE) |
\ | No newline at end of file |