节点package.json“bin”值,命令不起作用

时间:2016-11-12 09:49:00

标签: json node.js npm package.json

我在我的虚拟服务器上使用了nodejs来创建一个小脚本来管理数据库中的用户。

在package.json中我添加了“bin”并将其设置为我的脚本。我的尝试是在整个服务器上提供一个命令,所以我不需要去脚本所在的目录并写“node usermanager.js”。

我使用了npm链接,似乎工作正常:

/home/sl4yer/bin/cl9wnhook -> /home/sl4yer/lib/node_modules/cl9wnhook_usermanager/usermanager.js
/home/sl4yer/lib/node_modules/cl9wnhook_usermanager -> /home/sl4yer/cl9wnHook/usermanager

package.json btw是:

{
  "name": "cl9wnhook_usermanager",
  "version": "1.0.0",
  "description": "User manager for cl9wnHook",
  "main": "usermanager.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "bin": {
    "cl9wnhook": "./usermanager.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "commander": "^2.9.0",
    "js-sha512": "^0.2.2",
    "readline-sync": "^1.4.5"
  }
}

所以使用命令“cl9wnhook”应该可以工作。

但是当我打电话给它时,我得到了:

[sl4yer@lynx usermanager]$ cl9wnhook
: No such file or directory

有什么想法吗?

5 个答案:

答案 0 :(得分:0)

从您的项目目录:npm install -g

答案 1 :(得分:0)

sudo npm link

我成功完成了。

答案 2 :(得分:0)

包装包裹

npm pack

然后将其全局安装以从任何文件夹运行它。

npm install --global <package_file>.tgz

答案 3 :(得分:0)

使用NPM或Yarn时,确实会不时出现混乱。在这种情况下,请先进行完整的全新安装。

alignas(struct record)
rm -rf ./node_modules

如果那不能解决您的问题,请检查yarn install npm install 中的bin属性,是否正确映射到cli文件?

您可以通过运行package.json来检查包装内容。

答案 4 :(得分:0)

尝试添加

#!/usr/bin/env node

在您的 usermanager.js 文件的顶部。它应该可以工作。