使用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 相关文章推荐
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
Nov 04 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
Mar 01 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
jQuery自制提示框tooltip改进版
Aug 01 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 Javascript
node.js自动上传ftp的脚本分享
Jun 16 Javascript
layui之数据表格--与后台交互获取数据的方法
Sep 29 Javascript
新手入门js闭包学习过程解析
Oct 08 Javascript
详解Nuxt.js 实战集锦
Nov 19 Javascript
如何利用node转发请求详解
Sep 17 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图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
Three.js学习之网格
2016/08/10 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
UNIX文件系统分类
2014/11/11 面试题
2013英文求职信模板范文
2013/11/15 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL
python中validators库的使用方法详解
2022/09/23 Python