2012-07-21 42 views
3

我正在開發將發佈到NPM的節點中的CLI。 由於它是一個CLI應用程序,我希望它在安裝後包含在路徑中,因此不需要鍵入「node my-app.js」來運行它。我希望它只能運行「我的應用程序」。CLI與nodejs

在的package.json,我包括:

"bin": { 
    "my-all" : "./my-app.js" 
}, 

但是,這使得通過失敗NPM安裝此錯誤

錯誤:ENOENT,文件模式「/家/用戶1/node_modules /我 - 應用程序/我的應用程序內」

回答

4

假設你在某種UNIX(Linux操作系統,OSX),就把這條線在你的腳本的頂部:

#!/usr/bin/env node 

還要確保將文件設置爲可執行文件(chmod a+x my-all)。

這應該照顧需要鍵入node my-app.js,並且使您能夠輸入./my-app.js

至於npm包裝的東西,我不知道它爲什麼失敗,但我猜這是你的my-app.js的路徑或位置的問題。

如果一個可執行腳本被放在PATH中的任何地方,那麼它將像其他任何東西一樣運行。如果您運行which npm,您將看到npm可執行腳本的位置。在我的系統中,大多數節點可執行文件(或可執行文件npm腳本)進入/ usr/local/bin。我假設你的package.json可以設置放在路徑的某個地方。如果您需要更改路徑,請修改您的.profile或系統路徑。

+0

感謝您的回答..我已經看到安裝了NPM的節點應用程序運行沒有「./」,這就是我正在尋找的。 – oscarm 2012-07-21 23:02:29

+0

NPM本身就是一個例子。它是一個全局安裝的nodejs應用程序,您只需鍵入「npm」即可運行它。 TKS – oscarm 2012-07-21 23:03:14