使用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 while语句和do while语句的区别分析
Dec 08 Javascript
window.open 以post方式传递参数示例代码
Feb 27 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
Mar 14 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
js数组去重的5种算法实现
Nov 04 Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 Javascript
基于jQuery的ajax方法封装
Jul 14 Javascript
PhotoSwipe异步动态加载图片方法
Aug 25 Javascript
JavaScript使用readAsDataUrl方法预览图片
May 10 Javascript
vue.js中父组件调用子组件的内部方法示例
Oct 22 Javascript
js将URL网址转为16进制加密与解密函数
Mar 04 Javascript
JavaScript实现切换多张图片
Jan 27 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设计模式之迭代器模式的深入解析
2013/06/13 PHP
初识Laravel
2014/10/30 PHP
php导出生成word的方法
2015/12/25 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
php读取本地json文件的实例
2018/03/07 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
JS调用CS里的带参方法实例
2013/08/01 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
用js编写留言板
2020/03/17 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
python实现三次样条插值
2018/12/17 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
Python如何重新加载模块
2020/07/29 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
运动会跳远广播稿
2014/02/04 职场文书
战友聚会策划方案
2014/06/13 职场文书
关于教师节的广播稿
2014/09/10 职场文书
个人作风建设自查报告
2014/10/22 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
二十年同学聚会感言
2015/07/30 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书