全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解如何使用Node.js编写命令工具——以vue-cli为例

vue-cli全局安装之后,提供了vue命令和vue init、vue list、vue build三个子命令,通过命令可以搭建基于vue.js的脚手架项目。本文简单介绍一下这些命令是如何实现的。

vue-cli的项目目录

如下图,由之前文章介绍,npm安装过程中,可以利用package.json中bin字段的配置,将bin目录下的命令文件软连到全局命令。也就是说在/usr/local/bin下生成了四个软连命令:vue、vue-build、vue-list、vue-init。

 

vue命令的源码

#!/usr/bin/env node

 

require('commander')

 .version(require('../package').version)

 .usage('<command> [options]')

 .command('init', 'generate a new project from a template')

 .command('list', 'list available official templates')

 .command('build', 'prototype a new project')

 .parse(process.argv) 

 该命令采用commander.js来实现。commander的主要方法:

(1)parse:用于解析process.argv,将process.argv.slice(2)赋值给program.args;

(2)command:创建子命令,子命令的使用方法是command <subcommand> [options],实际调用的命令是command-subcommand,如使用命令行执行vue list,其实是在执行vue-list全局命令;

(3)options:主要设置命令的参数,同时提供参数对应的说明文档,默认提供的option是--help。

vue-init子命令的实现

vue-init的主要功能是拉取指定git目录下的项目模板文件(官方或自制)到指定目录下,用法如下

$ vue init <template-name> <project-name> 

这里仍需要解析process.argv,所以在vue-init中又引入了commander.js,生成了一个program

program

  .usage('<template-name> [project-name]')

  .option('--offline', 'use cached template')

 

/**

 * Help.

 */

 

function help () {

  program.parse(process.argv)

  if (program.args.length < 1) return program.help()

}

help() 

接下来就是要实现拉取模板文件,经处理后,放置到产出目录下,具体如何实现的,接下来会有专门的文章介绍vue-cli命令的实现原理,敬请期待!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# nodejs命令行工具  # vue.js  # 命令行工具  # vue命令行工具  # nodejs命令行参数处理模块commander使用实例  # 详解使用 Node.js 开发简单的脚手架工具  # 关于commander.js使用及源码分析  # 目录下  # 如何实现  # 是在  # 会有  # 成了  # 介绍一下  # 来实现  # 主要功能  # 可以利用  # 命令行  # 中又  # 大家多多  # 如下图  # 过程中  # 敬请期待  # 也就是说  # 文档  # 下生  # 引入了  # usr 


相关文章: C#如何序列化对象为XML XmlSerializer用法  Python文件管理规范_工程实践说明【指导】  c# 服务器GC和工作站GC的区别和设置  如何通过二级域名建站提升品牌影响力?  如何快速使用云服务器搭建个人网站?  如何用好域名打造高点击率的自主建站?  Swift开发中switch语句值绑定模式  建站之星如何优化SEO以实现高效排名?  定制建站是什么?如何实现个性化需求?  如何解决ASP生成WAP建站中文乱码问题?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  做企业网站制作流程,企业网站制作基本流程有哪些?  如何选择CMS系统实现快速建站与SEO优化?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何通过多用户协作模板快速搭建高效企业网站?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  如何用景安虚拟主机手机版绑定域名建站?  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何在Windows服务器上快速搭建网站?  建站之星后台管理:高效配置与模板优化提升用户体验  建站之星北京办公室:智能建站系统与小程序生成方案解析  深圳网站制作的公司有哪些,dido官方网站?  在线制作视频的网站有哪些,电脑如何制作视频短片?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何通过免费商城建站系统源码自定义网站主题与功能?  利用JavaScript实现拖拽改变元素大小  如何选择网络建站服务器?高效建站必看指南  移民网站制作流程,怎么看加拿大移民官网?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  青岛网站建设如何选择本地服务器?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  制作网页的网站有哪些,电脑上怎么做网页?  宝塔新建站点报错如何解决?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  建站之星安装提示数据库无法连接如何解决?  平台云上自主建站:模板化设计与智能工具打造高效网站  MySQL查询结果复制到新表的方法(更新、插入)  北京企业网站设计制作公司,北京铁路集团官方网站?  如何选择香港主机高效搭建外贸独立站?  建站三合一如何选?哪家性价比更高?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  ,石家庄四十八中学官网?  南京网站制作费用,南京远驱官方网站?  高端网站建设与定制开发一站式解决方案 中企动力  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  阿里云网站搭建费用解析:服务器价格与建站成本优化指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。