我想创建一个全局可访问的node.js模块,例如express
和mocha
。
所以我深入研究了他们的源代码,并创建了以下简短的例子:
index.js 文件,位于 hello / 目录中:
#!/usr/bin/env node
console.log("Hello world!")
正如你所看到的,测试这个概念只是一个“你好世界”。
以下是位于同一 hello / 目录中的 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'
我不知道出了什么问题,因为我尊重模块结构,就像我在express
和mocha
上找到的一样。你可以通过以下方式向我提供帮助:
感谢。
答案 0 :(得分:0)
您正在尝试安装目录。
如果您想在本地为您安装模块,只需将其复制到/usr/local/lib/node_modules/npm/node_modules/
。
但是,如果您希望npm
安装(共享),则必须创建一个包。
npm login
npm publish
npm install -g hello
如果你害羞,npm unpublish
会删除它。