2013-03-09 182 views
3

我想創建一個全局可訪問的node.js模塊,如expressmocha創建全局訪問的node.js模塊

所以我潛入他們的源代碼,並創建了以下簡單的例子:

index.js文件,地處你好/目錄:

#!/usr/bin/env node 

console.log("Hello world!") 

,你可以看,這只是一個「你好世界」來測試這個概念。

這裏是的package.json文件位於同一你好/目錄:

{ 
    "name": "Hello", 
    "version": "0.0.1", 
    "main": "./index", 
    "bin": { 
    "hello": "./bin/hello" 
    } 
} 

然後,我試着用NPM有以下安裝節點應用:

sudo npm install -g hello/ 

但這返回一個錯誤:

npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/Hello/bin/hello' 

我不知道什麼是錯的,因爲我尊重模塊結構,就像我在expressmocha上發現的那樣。你能爲我提供的幫助:

  • 指着什麼是錯在我的情況
  • 鏈接到有用的TUTS和資源有關創建可執行節點模塊

感謝。

回答

0

您正在嘗試安裝該目錄。

如果您想在本地爲您安裝模塊,只需將其複製到/usr/local/lib/node_modules/npm/node_modules/即可。

但是,如果您想npm安裝(共享),您將不得不創建一個包。

npm login 
npm publish 
npm install -g hello 

如果你害羞,npm unpublish將刪除它。

+0

感謝J的幫助,但我想在推送模塊之前在本地進行測試。另外,爲了檢查模塊更新,推送每個更新可能很繁重。 – htaidirt 2013-03-10 16:02:10