使用node打造自己的命令行工具方法教程


Posted in Javascript onMarch 26, 2018

一、实现一个简单的功能

使用node打造自己的命令行工具方法教程

二、环境

1.系统: window 10
2.编辑器: vscode
3.node版本: 8.7.0

三、开始玩

1.打开命令行,新建一个pa'ckage.json

npm init

这时看到一个新的package.json生成了,使用编辑器打开

2.修改package.json,新增一个bin属性

{
   "name": "my-cli",
   "version": "1.0.0",
   "description": "",
   "main": "index.js",
   "bin": { // 增加bin属性
     "auto": "./bin/cli.js" 
     // 左边的crp是定义的命令行的名字,可以自己随便取, 右边是命令行输入 crp 时会执行的文件(一定要在bin文件夹下)
   },
   "scripts": {
    
   },
   "keywords": [],
   "author": "",
   "license": "ISC"
  }

3.新建一个cli.js在当前的目录下, 简单修改

console.log('hello world')

4.然后转到命令行, 输入

npm link

5 查看一下效果

使用node打造自己的命令行工具方法教程

正确打印出hello world就是成功了

6.实现预览的效果

原理就是执行cli.js的时候,会读取自己设定好的模板,然后在当前的目录下生成一个文件,

写入模板的内容,简单的代码如下

#! /usr/bin/env node
  const fs = require('fs')
  const exec = require('child_process').exec
  var args = process.argv.slice(2) // 可以通过process.argv这里获得你输入的参数
  //读取内容(在当前的目录下新建template文件夹和加入一个template.vue的模板)
  var content = fs.readFileSync('./template/template.vue')
  //生成内容
  fs.writeFileSync(args[0], content)
  // 使用vscode打开
  exec('code ' + args[0])

然后放开你的脑洞, 你就能组合出许多你自己喜欢的命令来享受你的工具了

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

Javascript 相关文章推荐
jquery插件制作 提示框插件实现代码
Aug 17 Javascript
JavaScript中this的使用详解
Nov 08 Javascript
jquery form 加载数据示例
Apr 21 Javascript
jquery+Jscex打造游戏力度条
Sep 12 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
JS模拟超市简易收银台小程序代码解析
Aug 18 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
Jul 12 Javascript
更改BootStrap popover的默认样式及popover简单用法
Sep 13 Javascript
vue中导出Excel表格的实现代码
Oct 18 Javascript
JavaScript 截取字符串代码实例
Sep 05 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 Javascript
详解Vue 全局引入bass.scss 处理方案
Mar 26 #Javascript
js构建二叉树进行数值数组的去重与优化详解
Mar 26 #Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 #Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 #Javascript
JS从非数组对象转数组的方法小结
Mar 26 #Javascript
深入理解Node module模块
Mar 26 #Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 #Javascript
You might like
PHP小技巧之函数重载
2014/06/02 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
Python sys.path详细介绍
2013/10/17 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python的keyword模块用法实例分析
2015/06/30 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
python保留小数位的三种实现方法
2020/01/07 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
经理秘书岗位职责
2013/11/14 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
标准版离职证明书
2014/09/12 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
大学生学年个人总结
2015/02/15 职场文书
幼师自荐信范文
2015/03/06 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
Python中re模块的元字符使用小结
2022/04/07 Python