使用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 相关文章推荐
判断控件是否已加载完成的代码
Feb 24 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
JS动态日期时间的获取方法
Sep 28 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
Aug 29 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
Dec 27 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
浅谈React Native Flexbox布局(小结)
Jan 08 Javascript
浅谈React的最大亮点之虚拟DOM
May 29 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 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
JAVA/JSP学习系列之二
2006/10/09 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
Python批量查询域名是否被注册过
2017/06/21 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
求职简历的自我评价怎样写好
2013/10/07 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
环境卫生标语
2014/06/09 职场文书
超市创意活动方案
2014/08/15 职场文书
承诺书模板
2014/08/30 职场文书
委托函范文
2015/01/29 职场文书
黄埔军校观后感
2015/06/10 职场文书
冰雪公主观后感
2015/06/16 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
高二化学教学反思
2016/02/22 职场文书
七年级作文之下雨天
2019/12/23 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android