建立一個 Node.js CLI

今天咱們要談論建立 node.js 可執行文件。javascript

我想擁有一個我在個人計算機上打字,而後把它變爲其中的一個小熊表情。java

Node.js CLI

Node.js CLI

目前能夠看到個人機器上沒有此命令,咱們開始動手寫一個node

開始

準備工程git

mkdir node-cli
cd node-cli
touch cli.js
touch bears.txt
複製代碼

bears.txt:npm

ʕ•ᴥ•ʔ
ˁ˚ᴥ˚ˀ
ʕ·͡ᴥ·ʔ
óÔÔò
(● ̄(エ) ̄ ●)
⊂(・(ェ)・)⊃
ʕ•͡ ᴥ•͡  ʔ
ʕ•͡ᴥ•ʔ
(●`・(エ)・ ´●)
ʕノ•ᴥ•ʔノ ︵ ┻━┻
複製代碼

cli.jsjson

#!/usr/bin/env node
const fs = require("fs");

fs.readFile("bears.txt", (err, data) => {
  const bears = data.toString().split("\n");
  const bear = bears[Math.floor(Math.random() * bears.length)];
  console.log(bear);
});
複製代碼

讓咱們把全部的代碼逐行說說。數組

  1. #!/usr/bin/env node 是一個 shebang 行的實例,它告訴咱們的系統用什麼解釋器來執行該文件
  2. fs.readFile(...) 引用 fs 模塊讀取文件 bears.txt 內容
  3. const bears = ... 將文件流轉換成字符串,用換行符(\n)分割字符串成爲數組
  4. const bear = ...bears數組隨機取出一個元素
  5. console.log(bear); 在控制檯中打印出取出的元素

執行 node cli.js 結果以下bash

Node.js CLI

每次隨機打印出一個小熊dom

到如今咱們還不能執行這個文件,執行./cli.js 不會有任何結果,這是由於當前文件仍是不可執行的。工具

Node.js CLI

咱們經過chmod +x cli.js 來修改當前文件能夠執行

Node.js CLI

這個時候咱們就能夠執行 ./cli.js

回到最初想法,咱們想在命令行輸入 bearme 就會執行 cli.js 這時候須要添加package.json 信息

npm init -y
複製代碼

修改以下:

{
  "name": "bearme",
  "version": "1.1.0",
  "description": "",
  "main": "cli.js",
  "bin": {
    "bearme": "cli.js"
  },
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "preferGlobal": true,
  "author": "",
  "license": "MIT"
}
複製代碼

這個時候還不能全局執行,想要全局能夠執行有兩種方法

  1. 發佈這個包到npmjs.com,而後全局安裝 npm i bearme -g
  2. 使用npm link 建立一個全局鏈接

發佈 CLI 到 NPM

在部署以前,咱們須要在 package.json 中添加一些信息。

"homepage": "YOUR GITHUB REPO OR SITE HERE",
"repository": {
  "type": "git",
  "url": "git+YOUR GITHUB REPOSITORY HERE"
},
"engines": {
  "node": ">=8"
},
複製代碼
  • homepage 和 repository 要填寫你本身的 GitHub 項目地址
  • engines 確認 nodejs 版本號,簡單地定義了你的項目應該在最小版本的節點上工做。 版本號取決於你用了那些版本的特性。

下面是接下來的步驟。

  • npmjs.com 上建立一個帳戶(可選,若是有能夠忽略)
  • 運行 npm login 命令並輸入你的信息
  • 運行 npm publish 命令,它將在幾分鐘內自動發佈。

npm link

和上面方法兩者選其一,在當前目錄下執行 npm link

執行bearme 看看效果

bearme

 就是這樣! 動手建立了一個命令行工具

參考

  1. Creating a Node.js CLI
相關文章
相關標籤/搜索