使用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游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
Jan 23 Javascript
浅析js中的浮点型运算问题
Jan 06 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
Jan 23 Javascript
jQuery的animate函数学习记录
Aug 08 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
Jul 27 Javascript
canvas绘制七巧板
Feb 03 Javascript
angular中的cookie读写方法
Aug 02 Javascript
微信小程序实现滑动切换自定义页码的方法分析
Dec 29 Javascript
vue中nextTick用法实例
Sep 11 Javascript
Node.js创建一个Express服务的方法详解
Jan 06 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
Sep 18 Javascript
代码解析React中setState同步和异步问题
Jun 03 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 include加载文件两种方式效率比较
2010/08/08 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
详解php实现页面静态化原理
2017/06/21 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
python交换两个变量的值方法
2019/01/12 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
python有几个版本
2020/06/17 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
美丽的现代设计家具:2Modern
2018/07/26 全球购物
美容院考勤制度
2014/01/30 职场文书
写给老婆的检讨书
2014/02/21 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
保护黄河倡议书
2014/05/16 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
奖学金个人总结
2015/03/04 职场文书
检讨书怎么写
2015/05/07 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
子女赡养老人协议书
2016/03/23 职场文书
Mysql案例刨析事务隔离级别
2021/09/25 MySQL
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python