github地址

use

npm i fuzhi -g

复制文件

fuzhi a.js b.js

复制文件夹

fuzhi dirA dirB

Wiki

创建一个node命令的两个关键点

1.在package.json中加上bin属性

{
"name": "fuzhi",
"version": "0.0.4",
"author": "leinov",
"bin": {
"fuzhi": "./bin/fuzhi"
},
"dependencies": {
"chalk": "^2.4.1"
},
"keywords": [
"node",
"copy",
"fuzhi"
],
}

bin属性值是一个到本地文件名的映射。属性名是执行的命令名称,属性值是执行文件路径

2. 添加执行命令的文件头

./bin/fuzhi

#!/usr/bin/env node
...

#!/usr/bin/env node是帮助脚本找到node的脚本解释器,这句也是必须的,通过 npm get prefix获取本地node路径

npm link

在测试本地node包时都要使用到npm link将本地node包映射到全局node文件夹下,我们来看下在没有bin属性的node项目下执行npm link会输出什么

npm link 

/Users/leinov/.nvm/versions/node/v8.11.3/lib/node_modules/test -> /Users/leinov/project/test

显示告诉我们将/Users/leinov/project/test的项目的件放到了全局node下

这样在项目中就可以直接调使用

const test = require("test");

如果package.json下有bin属性会是怎么样的

/Users/leinov/.nvm/versions/node/v8.11.3/bin/fuzhi -> /Users/leinov/.nvm/versions/node/v8.11.3/lib/node_modules/fuzhi/bin/fuzhi
/Users/leinov/.nvm/versions/node/v8.11.3/lib/node_modules/fuzhi -> /Users/leinov/github/project/fuzhi

多了一行将命令文件映射到node的执行命令文件夹下,node bin目录下会多一个fuzhi命令,全局可执行

fuzhi ...

开发命令功能

这里主要用到node的三个api

  • fs
  • process
  • path

    以及chalk包来控制输出样式

完整代码

github地址

Nodejs编写复制文件及文件夹命令的更多相关文章

  1. (转)每天一个linux命令(8):cp 命令,复制文件和文件夹

    场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件. cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一. 一般情况下,she ...

  2. linux命令の删除文件和文件夹 复制粘贴文件和文件夹

    声明:此博文来自百度经验http://jingyan.baidu.com/article/642c9d34dcba80644a46f72d.html,谢谢分享! linux删除目录很简单,很多人还是习 ...

  3. XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

    XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行COPY.除非 ...

  4. [转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

    XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dir ...

  5. linux常用命令系列—cp 复制文件与文件夹

    原文地址:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=2272&id=37363 指令名称:cp(copy)功能介绍 ...

  6. 使用VS的生成事件命令行指令将生成的exe,dll文件复制到指定文件夹中

    VS预生成事件命令行 和 生成后事件命令行 宏说明 $(ConfigurationName)            当前项目配置的名称(例如,“Debug|Any CPU”). $(OutDir)   ...

  7. node 删除和复制文件或文件夹

    [toc] 创建时间:2019-08-12 注意:在win10,v10.16.1 环境运行无问题 首先引入相关包(会在使用处具体说明): const fs = require('fs') const ...

  8. Linux文件的建立、复制、删除和移动命令

    mkdir命令一.mkdir 命令使用权限 所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建文件夹或目录. 二.mkdir 命令使用格式 格式: mkdir [选项] DirName ...

  9. Linux chmod命令修改文件与文件夹权限的命令附实例

    Linux chmod命令修改文件与文件夹权限的命令附实例 作者:佚名 字体:[增加 减小] 来源:互联网 时间:05-01 20:46:07我要评论 在linux中要修改一个文件夹或文件的权限我们需 ...

随机推荐

  1. cxGrid的FilterRow默认自动匹配左边%而不是右边%

    /==============================================================================// 修改cxGrid的FilterRow ...

  2. C#通过字符串名称来调用对应字符串名称的方法

    前段时间在一个项目中,在一个地方要将函数所在类中的方法都调用一遍,但是否调用要通过配置文件中的内容决定.所以为了减少代码量,在网上查了相关信息,终于成功的将其应用到了项目中,我在这里将我做的一个简单例 ...

  3. C#中解析JSON数据,并获取到其中的值

    1.应需求创建一个Json字符串 string json = "[{'Name':'张三','age':'20','Data':{'ID':100,'heigh':'180','weight ...

  4. netcore 发布 到 windows server IIS

    net core 和普通net 发布没有什么不同,只需要在个别地方注意下: 1. 在visual Studio 2017 发布 2. 把发布好的文件copy到服务器上,并新建一个网站,同时要注意选择无 ...

  5. winfrom图片放大器

    废话不多说,直接上图看效果,左上角是原图片大小,右边是局部放大的效果 主要代码贴在下面,picBox是原图控件名,picBox_Show是放大控件名 private void picBox_Paint ...

  6. 微信小程序 - 实战小案例 - 简易记事本

    多项技能,好像也不错.学习一下微信小程序. 教程:https://mp.weixin.qq.com/debug/wxadoc/dev/ 简介:一套用来开发在手机微信上运行的app框架,不用安装 组成: ...

  7. 【sping揭秘】10、SpringIOC容器扩展

    关于component-scan操作(去除,失效) 这个spring中的配置项,可以扫描我们对应的包下面的类,自动把带上@component,@service,@controller, @reposi ...

  8. Spring Boot启动流程

    基础准备 1,BeanPostProcessor:这个接口的作用在于对于新构造的实例可以做一些自定义的修改.比如如何构造.属性值的修改.构造器的选择等等 2,BeanFactoryPostProces ...

  9. MySQL命令行登陆,远程登陆MySQL

    注: MySQL图形界面管理工具[navicat 10.1.8中文绿色版] 下载地址:http://www.t00y.com/file/18393836 备用地址:http://ProCircle.q ...

  10. freerdp服务器共享屏幕,skype lync终端显示黑屏的原因分析

    问题描述:freerdp支持远程桌面共享协议rdp,使用freerdp与skype终端进行远程桌面共享时.发送1080p 视频数据时 skype终端显示黑屏 经过分析,发现rdp协商参数大于一定值时, ...