使用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 相关文章推荐
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
Mar 20 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
Oct 17 Javascript
jquery中attr和prop的区别分析
Mar 16 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
es6系列教程_ Map详解以及常用api介绍
Sep 25 Javascript
Vue实现购物车场景下的应用
Nov 27 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
Feb 22 Javascript
Three.JS实现三维场景
Dec 30 Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 Javascript
ES6学习笔记之let与const用法实例分析
Jan 22 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
再谈JavaScript线程
2015/07/10 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
在Django的视图(View)外使用Session的方法
2015/07/23 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
Python微信库:itchat的用法详解
2017/08/14 Python
Python学生信息管理系统修改版
2018/03/13 Python
Python WEB应用部署的实现方法
2019/01/02 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
python 字符串常用函数详解
2019/09/11 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
Ruby如何实现动态方法调用
2012/11/18 面试题
会计专业自荐信范文
2013/12/02 职场文书
音乐学专业求职信
2014/07/22 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
九寨沟导游词
2015/02/02 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS