cyy-cli

一个非常简单的项目模板生成的工具,开发者可以通过输入指定的命令,然后在命令行界面中根据提示操作生成你想要的项目模板。此外,用户还可以依照提供的项目模板仓库配置文件的格式,通过指定命令上传自己的模板仓库配置文件,由此实现添加各种项目模版仓库。

使用场景

场景一:

一个较大的 SPA 项目,使用 SPA 框架开发,3个人负责开发,如果每个开发人员都自己配置一套 SPA,后期合并代码就会非常麻烦,这时组长可以自己先写好一个模版上传,然后每个开发人员通过 cyy-cli 下载即可。

场景二:

单页活动需求较多,而每次开发人员都有可能不同的情况下,可以提前写好一个模版上传,,然后每个开发人员通过 cyy-cli 下载即可。

工作流程和策略

输入 cyy-cli 之后,先检查 cyy-cli 的版本是否是最新,

如果不是最新版本,可以选择更新或者继续使用旧版本,

接下来根据提示输入/选择您要生成的项目模版,基本流程是:在你上传的 repo.config.json 里面找到对应的项目模板仓库地址,先删除之前已下载的本地旧模板,然后通过仓库地址克隆获取最新的模板,最后把拉取下载最新的项目模板改成你输入的项目名,复制一份到你当作命令行执行的目录下,同时生成的项目模板信息文件 config.info.json 到模板文件里面。

每次通过 cyy-cli 成功生成一个项目模板,都会备份一份在 cyy-cli 安装目录的备份文件夹里面,主要是为了防止网络不好或者无网络的时候也能获取到最新的模版。

下载 repo.config.json 功能是为了能让每个使用者可以自行配置自己的项目模版。

重置 repo.config.json 功能是为了能让每个使用者自定义 repo.config.json 文件的时候如果格式错误了导致 cyy-cli 无法使用,可以重置恢复到默认状态。

如果是上传了新的 repo.config.json 配置文件,可选择是否备份一份在 cyy-cli 安装包的备份文件夹里面,主要是为了防止网络不好或者无网络的时候也能获取当时备份时候生成的模版。

开发/运行环境

node 9.1.0

注:尽量使用高版本的 node,否则有可能会提示语法不支持。

安装

npm install cyy-cli -g

# 推荐 cnpm 方式安装

cnpm install cyy-cli -g

命令

生成模板

cyy-cli

注:默认模版仓库里面是随便填写的 github 仓库,国内克隆速度比较慢,建议您重新上传模版仓库配置文件里填写局域网或者国内的代码托管平台仓库。

上传模版(必须是 json 格式文件)

cyy-cli upload xxx.json

下载参考模版(下载下来参考,改成你的配置然后重新上传)

cyy-cli download repo

下载模版配置文件里面所有模版(可提前全部下载下载,当网络不好的时候可以直接拿下载好的本地项目模版)

cyy-cli download temp

重置成默认的参考模版(当你上传的配置文件格式错误导致无法使用的时候使用)

cyy-cli reset repo

查看当前安装的 cyy-cli 版本

cyy-cli -V

查看 cyy-cli 帮助信息

cyy-cli -h

# 或者

cyy-cli --help

repo.config.json 文件说明

repo.config.json 默认配置文件结构说明

├── 请选择平台类型

├── PC端 # 1层 单选项

├── APP端 # 2层 单选项

│ ├── 请选择APP端类型

│ ├── >react-native框架

│ ├── weex框架

│ ├── mui框架

│ └── ionic框架

├── 移动端 # 3层 单选项

│ ├── 请选择移动端类型

│ ├── >单页应用

│ │ ├── >react框架

│ │ ├── angular框架

│ │ └── vue框架

│ └── 活动

│ ├── >普通

│ └── 抽奖

├── 项目名 # 必填输入项

├── 开发人员 # 必填输入项

├── 上线时间-年 # 必填输入项

├── 上线时间-月 # 必填输入项

└── 上线时间-日 # 必填输入项

repo.config.json 默认参考配置文件,可使用 cyy-cli download 命令把这个配置文件下载下来修改成你想要的结构

字段说明:

"message" // 必填,单选/输入项的操作提示

"type" // 必填,单选项内容,list 为单选项,input 为输入项

"name" // 必填,唯一值,用于模版层级识别

"text" // 单选项显示的选项文字

"child" // 非必填,如果此层下面没有子选项了,可不填该属性

[{

"type": "list",

"message": "请选择平台类型",

"name": "plaform",

"text": "平台",

"child": [{

"name": "mobile",

"text": "移动端",

"child": [{

"name": "spa",

"text": "单页应用框架",

"child": [{

"name": "react",

"text": "react框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}, {

"name": "angular",

"text": "angular框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}, {

"name": "vue",

"text": "vue框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git",

"child": [{

"name": "cli",

"text": "vue-cli",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}]

}]

}, {

"name": "act",

"text": "活动",

"child": [{

"name": "webpack",

"text": "h5-webpack",

"url": "https://github.com/chenyaoyi88/h5-webpack.git"

}, {

"name": "parcel",

"text": "h5-parcel",

"url": "https://github.com/chenyaoyi88/h5-parcel.git"

}]

}]

},

{

"name": "pc",

"text": "PC端",

"child": [{

"name": "spa",

"text": "单页应用框架",

"child": [{

"name": "react",

"text": "react框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}, {

"name": "angular",

"text": "angular框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}, {

"name": "vue",

"text": "vue框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}]

}, {

"name": "act",

"text": "活动",

"url": "https://github.com/chenyaoyi88/cyy-tool.git",

"child": [{

"name": "lottery",

"text": "抽奖",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}]

}]

},

{

"name": "app",

"text": "APP端",

"child": [{

"name": "react-native",

"text": "react-native框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}, {

"name": "weex",

"text": "weex框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}, {

"name": "mui",

"text": "mui框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}, {

"name": "ionic",

"text": "ionic框架",

"url": "https://github.com/chenyaoyi88/cyy-tool.git"

}]

}

]

},

{

"type": "input",

"name": "appName",

"message": "请输入项目名"

},

{

"type": "input",

"name": "author",

"message": "请输入开发人员名字"

},

{

"type": "input",

"name": "onlineYear",

"message": "上线时间-年"

},

{

"type": "input",

"name": "onlineMonth",

"message": "上线时间-月"

},

{

"type": "input",

"name": "onlineDate",

"message": "上线时间-日"

}

]

操作如下图

生成项目模版操作流程

cli输入时候填写的项目信息

{

"appName": "cyy-test",

"author": "cyy",

"onlineYear": "2018",

"onlineMonth": "12",

"onlineDate": "01",

"createYear": "2018",

"createMonth": "02",

"createDate": "14"

}

Current Tags

1.0.38

...

latest

(3 years ago)

39 Versions

1.0.38

...

3 years ago

1.0.37

...

3 years ago

1.0.36

...

3 years ago

1.0.35

...

3 years ago

1.0.34

...

3 years ago

1.0.33

...

3 years ago

1.0.32

...

3 years ago

1.0.31

...

3 years ago

1.0.30

...

3 years ago

1.0.29

...

3 years ago

1.0.28

...

3 years ago

1.0.27

...

3 years ago

1.0.26

...

3 years ago

1.0.25

...

3 years ago

1.0.24

...

3 years ago

1.0.23

...

3 years ago

1.0.22

...

3 years ago

1.0.21

...

3 years ago

1.0.20

...

3 years ago

1.0.19

...

3 years ago

1.0.18

...

3 years ago

1.0.17

...

3 years ago

1.0.16

...

3 years ago

1.0.15

...

3 years ago

1.0.14

...

3 years ago

1.0.13

...

3 years ago

1.0.12

...

3 years ago

1.0.11

...

3 years ago

1.0.10

...

3 years ago

1.0.9

...

3 years ago

1.0.8

...

3 years ago

1.0.6

...

3 years ago

1.0.5

...

3 years ago

1.0.4

...

3 years ago

1.0.3

...

3 years ago

1.0.2

...

3 years ago

0.0.1

...

4 years ago

1.0.1

...

4 years ago

1.0.0

...

4 years ago

c语言开发的cli,Package - cyy-cli相关推荐

  1. 【转】C++/CLI简介(什么是C++/CLI) -------C++/CLI 编程系列一

    要知道C++/CLI是什么,首先知道什么是CLI. 一.CLI简介 CLI:(Common Language Infrastructure,通用语言框架)提供了一套可执行代码和它所运行需要的虚拟执行环 ...

  2. unity3D用什么语言开发好?

    unity3D用什么语言开发好? 一.总结 一句话总结:选c# 同时U3D团队也会把支持的重心转移到C#,也就是说文档和示例以及社区支持的重心都在C#,C#的文档会是最完善的,C#的代码实例会是最详细 ...

  3. 10款超级优雅的Go语言开发工具

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 Go语言在并发编程方面比绝大多数语言要简洁不少,这一点是其最大亮点之一,也是其在未来进入 ...

  4. 10 款优雅的 Go 语言开发工具

    以下内容来自公众号逆锋起笔,关注每日干货及时送达 jaxenter 从 GitHub 上精选了一些最好 Golang 工具,希望可以为喜欢用Go编程的开发者提供帮助,一起来看一下都有哪些工具上榜吧! ...

  5. go语言开发有哪些工具

    Go语言在并发编程方面比绝大多数语言要简洁不少,这一点是其最大亮点之一,也是其在未来进入高并发高性能场景的重要筹码.本篇文章主要是给大家介绍一些go语言开发的开源工具! 1.Go Revive rev ...

  6. 用 C 语言开发一门编程语言 — 字符串的设计与实现

    目录 文章目录 目录 前言 前文列表 字符串与文件库 字符串 print 关键字函数 error 关键字函数 注释 文件加载 函数注册 命令行参数 前言 通过开发一门类 Lisp 的编程语言来理解编程 ...

  7. java 计算移动平均线_基于Java语言开发的个性化股票分析技术:移动平均线(MA)...

    基于Java语言开发的个性化股票分析技术:移动平均线(MA) 基于 Java 语言开发的个性化股票分析技术:移动平均线(MA)移动平均线(MA)是以道·琼斯的"平均成本概念"为理论 ...

  8. 【Linux 操作系统】阿里云服务器 操作实战 部署C语言开发环境(vim配置,gcc) 部署J2EE网站(jdk,tomcat)

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 博客总结 : 设置SecureCRT ...

  9. 使用Sublime text 3打造一个小巧但强大的Go语言开发IDE

    版权声明:欢迎转载,转载请注明出处! https://blog.csdn.net/iTaacy/article/details/76716049 使用Sublime text 3打造一个小巧但强大的G ...

  10. Dapr + .NET 实战(十三)跨语言开发

    欢迎大家参加4小时Dapr+.NET 5的实战课程 课程链接     https://ke.qq.com/course/4000292?tuin=1271860f 因为基于Dapr的服务架构是不限语言 ...

最新文章

  1. JavaScript作用域链
  2. oracle更改文件,Oracle修改数据文件名以及移动数据文件
  3. java activit怎么画图_Activiti 快速入门指南(用Java编写服务任务)
  4. Codeforces Round #632 (Div. 2) E. Road to 1600 构造好题
  5. 开源无人机_开源无人机,欧洲开源等等
  6. hyper-v 尝试更改 状态时 应用程序遇到错误 无法初始化
  7. Python——使用“_”下划线作为参数的占位符
  8. RHEL 6 配置yum源
  9. android 5 1g内存,最新版:1G的RAM真的足够吗?使用软件测试Android手机的1G内存是否真的足够...
  10. Curator Zookeeper分布式锁
  11. iOS - Label 数字动态变化
  12. 好用的开源软件_推荐_良心软件
  13. docker安装cboard
  14. Netty自定义数据包
  15. Mybatis CRUD操作和多表查询
  16. CSS位置偏移反爬虫绕过
  17. 腾讯云,云点播,视频合成
  18. 2015年计算机网络考研真题及解析
  19. 简单实现目标箭头导航
  20. (转)Servlet3.0下@WebFilter注解配置Filter

热门文章

  1. 听说你在做斗鱼APP?
  2. 沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第五章 GTP发送模块详解
  3. Python自动化:批量合并某个文件夹内子文件夹的所有Excel,并新增两列分别备注文件路径和子sheet名
  4. 前端实习第一周总结(学习上的收获与生活上的收获)
  5. 12306泄露信息查询工具 12306回应信息泄露
  6. APP运行时Crash自动修复系统
  7. AVL树【图示详解+代码实现】
  8. oracle12c安装过程
  9. pytorch:线性回归实战
  10. 聊天类APP功能测试总结