zoukankan      html  css  js  c++  java
  • 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地址

  • 相关阅读:
    vue配置跨域
    vue的组件通信
    vue3.0图片循环不出来的解决方案
    具有隐私保护的分布式云数据库中聚合查询的多阶段协议-多级分离查询处理(MSQP)协议
    分布式云数据库
    虚拟网络映射论文
    云技术下的分布式数据库系统
    云环境下的分布式数据库-UDDB
    神经网络
    AlphaGo、AlphaGo zero、Alpha zero
  • 原文地址:https://www.cnblogs.com/leinov/p/9987602.html
Copyright © 2011-2022 走看看