一开始想要一个足够简洁,打包出的文件简单的脚手架,找了几天也没找到特别中意的,遂决定自己写一个。
为了让脚手架和项目模板分开管理、升级,因此创建了两个项目。cola-cli用于生成项目和一些node命令,cola-template用于存放项目模板。
cola-cli
主要实现两个目的:
1,从cola-template的地址把项目模板文件下载到本地
2,用node实现一些自动添加组件、页面的方法
步骤
来个init
1 | npm init |
为了解析node命令。安装commander依赖。大概想实现三个命令,-v查看版本号,init拉取项目模板,add添加一个组件。
声明命令
新建bin文件夹,存放命令,cola文件注册命令。
1 | #!/usr/bin/env node |
拉取模板
如何把cola-template的文件拉取到本地。。试了好几个库总是报错,后来采用的是git-clone,简单粗暴的还真好用。。chalk用于美化命令行文字颜色,ora实现一个loading的效果。
1 | #!/usr/bin/env node |
效果。。
添加一个组件
在项目里添加一个组件需要新建一个文件夹和写一堆初始代码。本着能懒则懒的原则。。
inquirer是个交互式命令行工具,这里用来实现让用户选择生成一个函数组件或者是一个标准组件。
1 | #!/usr/bin/env node |
效果。。
发布
emmm现在我们得到了一个脚手架,自己在本地玩的不是很方(zhuang)便(bi)。还想发布成npm包。。
要想发布,得有自己的账号,npm login。
登陆以后整理下自己的package.json。
1 | { |
然后。。npm publish就可以了。
cola-template
这个模板文件,本着一切从简的原则,从头自己搭的乞丐版框架,酷炫狂拽的功能好像都没有。很多想加的功能,有空继续折腾。。
依赖
react,antd组件库,sass/less预处理器,typescript,webpack-server,redux-saga,axios。实现温饱的功能。。
1 | "devDependencies": { |
结构
src放代码,static放静态资源。redux-saga的过程略显复杂。。
redux-saga流程。。