1.0.0 • Published 3 years ago

xitech-cli v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

说明文档

xitech-cli 小犀脚手架工具

为什么要做自己的脚手架 #公司的部分项目结构都差不多,在实际开发中,每次起一个新的项目都要从旧有的项目copy,然后改名、删除内容,留下基本框架,工作量大且繁琐,还容易漏掉某些需要修改的地方,如果从零开始建立项目的结构,又有很多工作需要做,这也是一件让人头疼的事情,身为程序猿的我们,怎么可以忍受这种没有bigger的方式呢。所以脚手架工具应运而生,它最核心的功能是能够快速搭建一个完整的项目的结构,开发者只需要在生成的项目结构的基础上进行开发即可,非常简单高效。

常见的脚手架工具

yoeman、express-generator、vue-cli等等。

yoeman和vue-cli实现原理 #yoeman搭建项目需要提供yoeman-generator,yoeman-generator本质上就是一个具备完整文件结构的项目样板,用户需要手动地把这些generator下载到本地,然后yoeman就会根据这些generator自动生成各种不同的项目。

#vue-cli提供了相当丰富的设定和选择功能,但是其本质也是从远程仓库把不同的模版拉取到本地,并不是在本地生成的。

实现思路 #首先建立不同的模板项目,然后脚手架根据用户的指令引用模板项目生成实际项目。模板项目可以内置在脚手架当中,也可以部署在远程仓库。为了更广的适用范围,xitech-cli采用的是第二种方式(即:部署在远程仓库)。

技术方案

node.js:脚手架工具的根本组成部分,推荐使用最新的版本。

es6:新版本的node.js对于es6的支持度非常高,使用es6能够极大地提升开发效率。

commander:TJ大神开发的工具,能够更好地组织和处理命令行的输入。

co:TJ大神开发的异步流程控制工具。

co-prompt:TJ大神开发的工具,传统命令行只能单行一次性地输入所有参数和选项,这个工具可以自动提供提示信息,并分步接收用户的输入,体验类似npminit时的一步一步输入参数的过程。

目录结构

/xitech-cli/
├── /bin/             # 入口文件目录
│ └── xitech     	  # 入口文件
├── /command/         # 命令处理文件目录
│ ├── add.js          # 添加模板
│ ├── delete.js       # 删除模板
│ ├── init.js         # 初始化项目
│ └── list.js         # 输出模板列表
├── .gitignore        # git忽略文件
├── LICENCE           # LICENCE
├── package.json      # 项目依赖
├── package-lock.json # 项目依赖
├── README.md         # 项目说明文档
└── templates.json    # 模板信息

构建

# 进入项目目录
cd xitech-cli

# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖(会有各种诡异的 bug)。可以通过如下设置淘宝镜像的方式解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org

# 本地调试的时候,在根目录下执行 npm link 可把xitech命令绑定到全局,以后就可以直接以xitech作为命令开头,无需敲入node xitech之类的命令了
npm link

本地调试运行命令

查看版本信息 xitech -v

添加模版命令 xitech add

删除模板命令 xitech delete

输出模板列表命令 xitech list

初始化项目命令 xitech init

发布到npm

1. 准备一个npm账号(没有自己去npm官网去注册)
2. 将准备好的模板代码放到git服务器(您可以放到GitHub,自己的git服务器)
3. 执行npm login
4. 登录成功后执行npm publish
5. 发布完成后您就可以执行以下代码测试啦:

a) 先全局安装xitech-cli
npm install xitech-cli -g
b) 安装完成后执行下面代码查看版本信息
xitech-cli -v
//最后执行各种运行命令

现在我们的整个脚手架工具已经搭建完成了,以后只需要知道模板的git地址和branch就可以不断地往xitech上面添加,团队协作的话只需要分享xitech的templates.json文件就可以了。