使用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 相关文章推荐
IE6浏览器中window.location.href无效的解决方法
Nov 20 Javascript
jQuery操作iframe中js函数的方法小结
Jul 06 Javascript
js仿百度切换皮肤功能(html+css)
Jul 10 Javascript
jQuery 的 ready()的纯js替代方法
Nov 20 Javascript
js实现交通灯效果
Jan 13 Javascript
详解用node-images 打造简易图片服务器
May 08 Javascript
vue之数据交互实例代码
Jun 20 Javascript
使用ECharts实现状态区间图
Oct 25 Javascript
Vue实现一个图片懒加载插件
Mar 11 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 Javascript
js实现批量删除功能
Aug 27 Javascript
vue如何使用rem适配
Feb 06 Vue.js
详解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 memcache扩展的三种安装方法
2009/04/26 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
javascript parseInt 大改造
2009/09/27 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
JavaScript SetInterval与setTimeout使用方法详解
2013/11/15 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
python实现百度语音识别api
2018/04/10 Python
Python实现端口检测的方法
2018/07/24 Python
python 把列表转化为字符串的方法
2018/10/23 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
Python matplotlib实时画图案例
2020/04/23 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
高中体育教学反思
2014/01/29 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
2014个人年度工作总结
2014/12/15 职场文书
荒岛余生观后感
2015/06/09 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
Pandas数据结构之Series的使用
2022/03/31 Python
python​格式化字符串
2022/04/20 Python
Redis特殊数据类型bitmap位图
2022/06/01 Redis