使用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页面加载初始化常用的三种方法
Jun 04 Javascript
JQuery工具函数汇总
Jun 15 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 Javascript
jQuery Ztree行政地区树状展示(点击加载)
Nov 09 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
Nov 28 Javascript
video.js使用改变ui过程
Mar 05 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
微信小程序登录换取token的教程
May 31 Javascript
JS+css3实现幻灯片轮播图
Aug 14 Javascript
微信小程序实现拼图小游戏
Oct 22 Javascript
用JS写一个发布订阅模式
Nov 07 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
vue添加class样式实例讲解
2019/02/12 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
Python自动发邮件脚本
2017/03/31 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python面向对象基础入门之编码细节与注意事项
2018/12/11 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
酒会邀请函
2015/01/31 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
六年级作文之预言作文
2019/10/25 职场文书