使用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 相关文章推荐
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
Sep 14 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
js 判断一组日期是否是连续的简单实例
Jul 11 Javascript
easyui form validate总是返回false的原因及解决方法
Nov 07 Javascript
了解ESlint和其相关操作小结
May 21 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 Javascript
微信小程序地图绘制线段并且测量(实例代码)
Jan 02 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
JS封装cavans多种滤镜组件
Feb 15 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
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
详解Python中DOM方法的动态性
2015/04/11 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
Python编程中的for循环语句学习教程
2015/10/14 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
python里dict变成list实例方法
2019/06/26 Python
Python列表的切片实例讲解
2019/08/20 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
软件设计的目标是什么
2016/12/04 面试题
园长自我鉴定
2013/10/06 职场文书
中职生自荐信
2013/10/13 职场文书
会计专业毕业生推荐信
2013/11/05 职场文书
小饰品店的创业计划书范文
2013/12/28 职场文书
求职信范文怎么写
2014/01/29 职场文书
《童年》教学反思
2014/02/18 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
创业计划书之花店
2019/09/20 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电