创建一个全局可访问的node.js模块

hta*_*irt 5 module global node.js

我想创建一个全局可访问的 node.js 模块,express例如mocha

因此,我深入研究了他们的源代码,并创建了以下简短示例:

index.js文件,位于hello/目录中:

#!/usr/bin/env node

console.log("Hello world!")
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这只是一个“hello world”来测试这个概念。

这是位于同一hello/目录中的package.json文件:

{
  "name": "Hello",
  "version": "0.0.1",
  "main": "./index",
  "bin": {
    "hello": "./bin/hello"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,我尝试使用npm安装节点应用程序,如下所示:

sudo npm install -g hello/
Run Code Online (Sandbox Code Playgroud)

但这会返回一个错误:

npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/Hello/bin/hello'
Run Code Online (Sandbox Code Playgroud)

我不知道出了什么问题,因为我尊重模块结构,就像我在express和 上找到的那样mocha。您可以通过以下方式为我提供帮助吗:

  • 指出我的情况有什么问题
  • 链接到有关创建可执行节点模块的有用教程和资源

谢谢。