使用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抽象工厂模式详细说明
Dec 16 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
Javascript中With语句用法实例
May 14 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
JavaScript跨域调用基于JSON的RESTful API
Jul 09 Javascript
基于node.js依赖express解析post请求四种数据格式
Feb 13 Javascript
Bootstrap3下拉菜单的实现
Feb 22 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
highcharts 在angular中的使用示例代码
Sep 20 Javascript
详解javascript中的babel到底是什么
Jun 21 Javascript
wx-charts 微信小程序图表插件的具体使用
Aug 18 Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 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中的数组操作函数整理
2008/08/18 PHP
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
php搜索文件程序分享
2015/10/30 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
Python脚本实现代码行数统计代码分享
2015/03/10 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
QML用PathView实现轮播图
2020/06/03 Python
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
销售员岗位职责范本
2014/02/03 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
小学安全汇报材料
2014/08/14 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
MySQL之DML语言
2021/04/05 MySQL
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python