使用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调用flash的效果代码
Apr 26 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
jQuery无刷新分页完整实例代码
Oct 27 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
jQuery自定义插件详解及实例代码
Dec 29 Javascript
详解vue2父组件传递props异步数据到子组件的问题
Jun 29 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
Aug 23 Javascript
vuex实现像调用模板方法一样调用Mutations方法
Nov 06 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
Aug 06 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/02/28 PHP
定义php常量的详解
2013/06/09 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
php生成短网址示例
2014/05/05 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
实习医生自我评价
2013/09/22 职场文书
毕业生就业协议书
2014/04/11 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
python_tkinter弹出对话框创建
2022/03/20 Python