位置: 编程技术 - 正文

详解如何实现一个简单的Node.js脚手架(如何实现仁)

编辑:rootadmin

推荐整理分享详解如何实现一个简单的Node.js脚手架(如何实现仁),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何实现1px,怎样才能实现仁呢,如何才能够实现“仁”,如何实现1px,如何实现是什么意思,如何实现1px,如何实现仁300字,如何实现仁300字,内容如对您有帮助,希望把文章链接给更多的朋友!

原因

在工作中,需要开发一个脚手架,用于给相关用户提供相关的开发便利性。

适合人群

对前端、Node操作有一定的了解,同时向了解脚手架开发过程或者需要自己实现一个脚手架的开发者。

目标

开发一个简单的脚手架,能够提供给用户进行安装。 能够输出相关提示。 对用户文件进行读写操作。 在脚手架中使用Shell脚本。

步骤

开发脚手架

脚手架的开发最开始过程与普通的前端项目相同,需要一个入口文件command.js和配置文件package.json。

与其他配置文件不同的是,需要在package.json文件中加上一下一项:

在配置文件中增加了此项后,只需要在配置文件根目录下执行npm link命令,即可使用cm-cli --help命令来查看加载的cm-cli脚手架。

如果你发布了你的脚手架,那么在其他用户使用命令npm install -g cm-cli之后,便可以在全局下使用你的脚手架了。

对用户进行提示

在对注释和命令进行提示中,我们需要使用到commander包,使用npm install commander即可进行安装。(如果NPM版本低于5,则需要添加--save参数保证更新package.json配置文件)。

commander是一个提供用户命令行输入和参数解析的强大功能。有需要的可以阅读相关的库文档。在这里我介绍两个用的最多的方法。

option

能够初始化自定义的参数对象,设置关键字和描述,同时还可以设置读取用户输入的参数。具体用法如下:

具体展示如下:

详解如何实现一个简单的Node.js脚手架(如何实现仁)

command

该方法能够在命令行增加一个命令。用户在执行此命令后,能够执行回调中的逻辑。具体用法如下:

具体展示效果如下:

对用户文件进行读写操作

通过上面的步骤,我们已经能够完成一个简单的脚手架了。下面,我们需要读取用户配置,同时为用户生成一些模板文件。

读取文件

现在,我们需要读取用户的cm-cli.json配置文件来进行一些配置。

我们可以使用Node.js的fs文件模块来对文件进度读操作,由于此处没有太多难点,因此略去。

写入文件模板

我们提前将模板文件存储在CDN上,再根据本地读取到的相关脚手架配置文件来进行模板的下载。

注:脚手架中读取的路径为使用者使用时当前路径,因此没有办法将模板文件存储在脚手架中进行读取。

我们可以使用诸如request这种库来帮助我们进行文件下载,简化操作步骤。执行npm install request`即可进行安装。

注:在文件写入时建议先判断文件是否存在,再进行覆盖。

使用Shell脚本

与Node.js提供的API函数来看,有些人更加倾向于使用Shell脚本来进行文件操作。幸运的是,我们也可以在我们的脚手架中引入node-cmd来启用对Shell脚本的支持。执行npm install node-cmd即可进行安装。

具体示例如下:

我们可以快速的使用Shell脚本来进行文件夹的创建和文件模板的下载。

总结

脚手架想要在终端能够快速执行,可以在package.json配置文件中增加相关字段。

脚手架需要能够读取相关终端输入,可以使用commander库来快速开发。

脚手架需要能够执行Shell脚本,可以使用node-cmd库来快速实现需求。

标签: 如何实现仁

本文链接地址:https://www.jiuchutong.com/biancheng/370623.html 转载请保留说明!

上一篇:windows下更新npm和node的方法(windows升级node版本)

下一篇:node.js下LDAP查询实例分享(nodejs获取客户端ip地址)

  • 城市维护建设税计算公式
  • 筹建期间的会计分录
  • 支付安全生产费怎么入账
  • 公司刻一套章子多少钱
  • 知道税额怎么算含税金额
  • 手机专票 一般纳税人能抵扣吗
  • 营改增后装修材料如何抵扣?
  • 学校捐赠收入需上交吗
  • 个人转让土地使用权 增值税
  • 没有成本票如何做账
  • 股东个人借款用于公司怎么处理
  • 加计扣除10%进项税账务处理 如何填表
  • 工费经费用计提吗
  • 代付给其他供应商货物尾款怎么记账
  • 怎么在bios中开启硬件虚拟化
  • 土地拍卖资金交到哪里
  • 如何解决win7系统蓝牙接收模块影响电脑蓝屏
  • 罂粟是不是草果
  • realpopup.exe - realpopup是什么进程
  • 吊兰怎么养才能开花
  • sudo命令无法执行
  • 包装物损坏无法确认
  • 存货短缺的账务处理
  • 差旅费报销管理规定2022
  • 报错500是什么意思
  • 发票刮出来的奖有兑奖时间
  • php常用的魔术方法有哪些
  • 双峰骆驼什么意思
  • 老生常谈含义
  • phpsystem函数
  • 投资性房地产成本法转公允价值法
  • linux命令bzip2
  • php基于单例模式开发
  • 工业企业采购流程
  • python的顺序
  • 花生油代加工厂
  • 进口关税增值税如何做账
  • vue 鼠标移入移出(hover)切换显示图片问题
  • ps索引工具怎么用
  • 国税办税人员怎么解绑
  • 财务报表申报错误情况说明范文
  • mysql的日期时间函数
  • 怎么计算利润的百分比
  • 本期无销项税额,勾选抵扣的进项税填在哪里
  • 增值税少企业所得税高吗
  • 期初金额是什么
  • 财务费用减少记借方还是贷方
  • 预收帐款一直挂账好吗
  • 视频制作开票属于现代服务吗?
  • 分包工程是什么意思
  • 叉车上牌流程注册登记
  • 房租增值税专用发票需要开多张,单位和数量如何填写
  • 厂房拆了建住宅可以么
  • mysql学习教程
  • win8无法连接wifi
  • linux 命令提示
  • win10系统预览版
  • ubuntu16.04英文版安装教程
  • 电脑xp自带的杀毒软件在哪里
  • mac输入特殊字符
  • Win7旗舰版系统文件名称
  • linux halting
  • opengl 绘制
  • js手机模拟器
  • javascript冒泡排序代码
  • 问题的英语怎么读
  • perl中sub
  • bootstrap需要学多久
  • android四大组件生命周期
  • python中用input()函数接收到的数据为
  • CustomPropertyDrawer-Change the height of Property field
  • nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
  • shell中判断字符串
  • javascript函数
  • 怎么用git上传项目
  • 向境外付款需要代扣代缴所得税吗
  • 企业所得税年报资产总额平均值怎么填写
  • 广州2021社保费
  • 北京税务局网上办税服务厅
  • 地方税务局是事业单位吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设