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
。您可以通过以下方式为我提供帮助吗:
谢谢。
您正在尝试安装该目录。
如果您想在本地安装该模块,只需将其复制到/usr/local/lib/node_modules/npm/node_modules/
.
但是,如果您想npm
安装它(以共享),则必须创建一个包。
npm login
npm publish
npm install -g hello
Run Code Online (Sandbox Code Playgroud)
如果你害羞,npm unpublish
就删除它。