没有合适的资源?快使用搜索试试~ 我知道了~
详解使用 Node.js 开发简单的脚手架工具
0 下载量 11 浏览量
2021-01-20
07:30:37
上传
评论
收藏 95KB PDF 举报
温馨提示
试读
4页
前言 像我们熟悉的 vue-cli,react-native-cli 等脚手架,只需要输入简单的命令 vue init webpack project,即可快速帮我们生成一个初始项目。在实际工作中,我们可以定制一个属于自己的脚手架,来提高自己的工作效率。 为什么需要需要脚手架? 减少重复性的工作,不再需要复制其他项目再删除无关代码,或者从零创建一个项目和文件。 根据交互动态生成项目结构和配置文件等。 多人协作更为方便,不需要把文件传来传去。 思路 要开发脚手架,首先要理清思路,脚手架是如何工作的?我们可以借鉴 vue-cli 的基本思路。vue-cli 是将项目模板放在 git
资源详情
资源评论
资源推荐
详解使用详解使用 Node.js 开发简单的脚手架工具开发简单的脚手架工具
前言前言
像我们熟悉的 vue-cli,react-native-cli 等脚手架,只需要输入简单的命令 vue init webpack project ,即可快速帮我们生成一个初始
项目。在实际工作中,我们可以定制一个属于自己的脚手架,来提高自己的工作效率。
为什么需要需要脚手架?
减少重复性的工作,不再需要复制其他项目再删除无关代码,或者从零创建一个项目和文件。
根据交互动态生成项目结构和配置文件等。
多人协作更为方便,不需要把文件传来传去。
思路思路
要开发脚手架,首先要理清思路,脚手架是如何工作的?我们可以借鉴 vue-cli 的基本思路。vue-cli 是将项目模板放在 git
上,运行的时候再根据用户交互下载不同的模板,经过模板引擎渲染出来,生成项目。这样将模板和脚手架分离,就可以各自
维护,即使模板有变动,只需要上传最新的模板即可,而不需要用户去更新脚手架就可以生成最新的项目。那么就可以按照这
个思路来进行开发了。
第三方库第三方库
首先来看看会用到哪些库。
commander.js,可以自动的解析命令和参数,用于处理用户输入的命令。
download-git-repo,下载并提取 git 仓库,用于下载项目模板。
Inquirer.js,通用的命令行用户界面集合,用于和用户进行交互。
handlebars.js,模板引擎,将用户提交的信息动态填充到文件中。
ora,下载过程久的话,可以用于显示下载中的动画效果。
chalk,可以给终端的字体加上颜色。
log-symbols,可以在终端上显示出 √ 或 × 等的图标。
初始化项目初始化项目
首先创建一个空项目,暂时命名为 okii-cli,然后新建一个 index.js 文件,再执行 npm init 生成一个 package.json 文件。最后
安装上面需要用到的依赖。
代码如下:npm install commander download-git-repo inquirer handlebars ora chalk log-symbols -S
处理命令行处理命令行
node.js 内置了对命令行操作的支持,在 package.json 中的 bin 字段可以定义命令名和关联的执行文件。所以现在
package.json 中加上 bin 的内容:
{
"name": "okii-cli",
"version": "1.0.0",
"description": "基于node的脚手架工具",
"bin": {
"okii": "index.js"
},
...
}
然后在 index.js 中来定义 init 命令:
#!/usr/bin/env node
const program = require('commander');
program.version('1.0.0', '-v, --version')
.command('init <name>')
.action((name) => {
console.log(name);
});
program.parse(process.argv);
调用 version(‘1.0.0’, ‘-v, –version’) 会将 -v 和 –version 添加到命令中,可以通过这些选项打印出版本号。
调用 command(‘init <name>’) 定义 init 命令,name 则是必传的参数,为项目名。
weixin_38617615
- 粉丝: 6
- 资源: 1017
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- RAG技术知识图谱概览
- VMware Workstation功能强大的桌面虚拟计算机软件
- 中文命名实体识别,采用bilstm+crf模型基于Pytorch实现
- PowerGREP V5.3.3 Retail
- 美赛数学建模算法-使用Matlab实现灰色系统建模GreySystem-国赛-题解.zip
- 基于albert-bilstm-crf架构利用keras框架实现NER
- RegexMagic V2.13.1 Retail
- python-3.6.5-macosx 安装包
- 美赛数学建模算法-使用Matlab实现图论GraphTheory-包括求最短路径-国赛-题解.zip
- RegexBuddy v4.14.1 Retail
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0