nodejs模塊發佈及命令行程序開發

前置技能

  • npm工具爲nodejs提供了一個模塊和管理程序模塊依賴的機制,當咱們但願把模塊貢獻出去給他人使用時,能夠把咱們的程序發佈到npm提供的公共倉庫中,爲了方便模塊的管理,npm規定要使用一個叫package.json的文件來描述咱們模塊的名稱、版本等信息。
  • 咱們貢獻出去的程序模塊,可能也依賴了別人所編寫的模塊,因此須要在package.json中寫明咱們依賴了哪些模塊,便於別人安裝。
  • 簡單的nodejs程序能夠經過 node xxx.js 來運行,當咱們但願直接在控制檯中使用xxx命令運行nodejs程序時,須要建立一個cmd命令文件(windows下),並把它放到path路徑下,npm提供了一個自動完成這個工做的流程,這個也是在package.json裏邊配置的。

基於以上幾點,我以爲有必要挨個理解一下package.json裏邊的配置項:我理解翻譯的package.json文檔javascript

模塊發佈

發佈一個npm模塊很是簡單。java

註冊npm帳戶

這個帳戶註冊體驗多好啊,不過記得密碼別搞忘記了。
npm adduser
Username: zoucz
Password: ******
Email: 405966530@qq.comnode

建立一個測試模塊

新建一個文件夾,npm init,一路enter ,要注意的是name不能是已經被別人搶佔的,能夠到http://npmjs.org這裏查詢。
此時文件夾下會生成一個package.json文件,若是看過package.json裏邊配置的含義,這裏就比較好理解了。
新建一個index.js,內容以下:

此時模塊就建立完畢了,簡單吧!linux

發佈模塊

在剛剛新建的文件夾下打開cmd,運行npm publish ,模塊發佈完畢!
要注意的是每次發佈的時候都須要增長版本號。
此時在http://npmjs.org這裏就能夠查詢到剛剛發佈的模塊了,我測試模塊名稱是zoucz,那麼此時別人也能夠經過 npm install zoucz來使用我發佈的模塊了。git

開發控制檯命令程序

以windows下爲例,咱們怎麼樣才能建立一個cmd命令呢?github

1.在環境變量裏邊添加一段:";D:/test"npm

2.在d盤test目錄下建立一個mycmd.cmd文件json

這時就可使用mycmd命令了。那麼要怎麼在cmd中調用node程序呢? 很簡單:windows

3.在那個mycmd.cmd文件裏邊寫上 node path/to/xxx.js,就能夠了。app

使用npm建立控制檯命令程序,咱們不須要本身完成上面的步驟,只須要增長一行配置就能夠了

添加要執行的nodejs代碼文件

在模塊根目錄下添加bin目錄

新建zoucz.js內容以下:

#!/usr/bin/env node
var util=require("util");
console.log("hello,i'm zouchegnzhuo,you can type command name/site/email");
var cmd=process.argv[2];
if(cmd){
    switch(cmd){
        case "name":
            console.log("鄒成卓");
            break;
        case "site":
            console.log("http://zoucz.com");
            break;
        case "email":
            console.log("405966530@qq.com");
            break;
    }
}

要注意的是,文件首行的 #!/usr/bin/env node 必定要添加 ,這一行的意思是生成cmd文件的時候用什麼路徑的什麼程序來運行上面的代碼,文章末尾的demo中給出了不加的後果。

在package.json中配置bin

在package.json中配置

模塊在npm install的時候會生成zoucz和zoucz_err兩個cmd文件。

發佈模塊

添加好上面的配置後,發佈模塊,別的碼農就能夠安裝使用此命令了。

安裝使用控制檯命令程序

在cmd中 npm install -g zoucz ,就能夠安裝上面的模塊,安裝完成後可使用zoucz命令和zoucz_err命令。

zoucz_err是沒有在js文件首行寫#!/usr/bin/env node的後果:

運行命令以後:

咱們順着圖片中的路徑,在C:\Users\czzou\AppData\Roaming\npm目錄下能夠找到npm爲咱們建立的cmd文件路徑:

能夠看到npm建立cmd文件的同時也建立了linux下使用的文件。
如今來看一下爲何執行zoucz_err會報錯,分別打開兩個cmd文件:
zoucz.cmd

zoucz_err.cmd

後者壓根就沒有用node去執行那段代碼,固然會報錯了~
這裏要注意的是npm install -g 全局安裝的時候,cmd文件是被建立在上面的路徑下的,若是沒有-g選項,局部安裝,則會被建立在項目根目錄node_modules/.bin 目錄下。

最後

npm能夠幫咱們作不少事情,作node開發的同窗們都有必要花時間慢慢把npm的文檔啃完https://docs.npmjs.com
本文所使用的demo地址:https://github.com/zouchengzhuo/nodejsLearn/tree/master/zoucz

本文轉自個人我的網站,原文地址,歡迎前往交流討論

相關文章
相關標籤/搜索