UNPKG

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