UNPKG

3.23 kBMarkdownView Raw
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```
16Usage: dpro [options] [command]
17
18Options:
19 -h, --help output usage information
20
21Commands:
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### 安装工具
32Window 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
89module.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