使用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 相关文章推荐
brook javascript框架介绍
Oct 10 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
Jul 20 Javascript
使用CSS样式position:fixed水平滚动的方法
Feb 19 Javascript
JS实现六边形3D拖拽翻转效果的方法
Sep 11 Javascript
js制作可以延时消失的菜单
Jan 13 Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 Javascript
基于JavaScript实现表格滚动分页
Nov 22 Javascript
react native 文字轮播的实现示例
Jul 27 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
JavaScript模拟实现网易云轮播效果
Apr 04 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php中异常处理方法小结
2015/01/09 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
一起来写段JS drag拖动代码
2010/12/09 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
Python中import机制详解
2017/11/14 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
编写strcpy函数
2014/06/24 面试题
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
进程的查看和调度分别使用什么命令
2015/03/25 面试题
《云雀的心愿》教学反思
2014/02/25 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
美丽人生观后感
2015/06/03 职场文书