使用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 相关文章推荐
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
Dec 09 Javascript
jQuery获得内容和属性示例代码
Jan 16 Javascript
js怎么判断flash swf文件是否加载完毕
Aug 14 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
JS实现的仿QQ空间图片弹出效果代码
Feb 23 Javascript
BootStrap树状图显示功能
Nov 24 Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 Javascript
jquery版轮播图效果和extend扩展
Jul 18 jQuery
详解AngularJS 过滤器的使用
Jun 02 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
node实现socket链接与GPRS进行通信的方法
May 20 Javascript
vue实现评价星星功能
Jun 30 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学习笔记之二 php入门知识
2011/01/12 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
关于JavaScript中string 的replace
2013/04/12 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
ES6中数组array新增方法实例总结
2017/11/07 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python备份Mysql脚本
2008/08/11 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
python 中如何获取列表的索引
2019/07/02 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
python根据文本生成词云图代码实例
2019/11/15 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
jupyter notebook 重装教程
2020/04/16 Python
Django中的AutoField字段使用
2020/05/18 Python
Python如何获取文件指定行的内容
2020/05/27 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
学生实习推荐信范文
2013/11/26 职场文书
中国文明网签名寄语
2014/01/18 职场文书
留守儿童工作方案
2014/06/02 职场文书
体育比赛口号
2014/06/09 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python