2013-03-09 115 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