Nodejsレプリケーションファイルおよびフォルダコマンドの作成

1927 ワード

githubアドレス
use
npm i fuzhi -g

ファイルのコピー
fuzhi a.js b.js

フォルダのコピー
fuzhi dirA dirB

Wiki
nodeコマンドを作成する2つのキー
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の実行コマンドフォルダに1行以上マッピングすると、node binディレクトリの下にfuzhiコマンドが1つ追加され、グローバルに実行できます.
fuzhi ...

開発コマンド機能
ここでは主にnodeの3つのapiを用います
  • fs
  • process
  • pathおよびchalkパケットは、出力スタイル
  • を制御する.
    完全なコード
    githubアドレス
    転載先:https://www.cnblogs.com/leinov/p/9987602.html