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小时内与您取得联系。