• Nodejs编写复制文件及文件夹命令


    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路径

    在测试本地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地址

  • 相关阅读:
    HTML5和HTML4之间的区别
    HttpRequest信息内容介绍
    Spring Web MVC处理请求的流程
    游戏中的路径动画设计与实现
    Python基本数据类型
    Python基本数据类型
    perl .= 操作符
    出差二、三事——北漂18年(25)
    perl 卸载Oracle数据库
    perl 卸载mysql数据库
  • 原文地址:https://www.cnblogs.com/freyhill/p/9987602.html
Copyright © 2020-2023  润新知