【问题标题】:Node package.json "bin" value, command not working节点 package.json “bin” 值,命令不起作用
【发布时间】:2023-04-03 14:17:02
【问题描述】:

我在我的虚拟服务器上使用 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 顺便说一句是:

{
  "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

有什么想法吗?

【问题讨论】:

  • This 可以帮助你。
  • 这不正是我所做的吗?]
  • ~/bin/cl9wnhook 有效吗?
  • Nope :( 同样的错误。似乎该命令已注册但未找到该文件 :(
  • 你有什么解决办法吗?我也面临同样的问题。

标签: json node.js npm package.json


【解决方案1】:

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

【讨论】:

  • 做到了。没有这样的文件或目录。
【解决方案2】:
sudo npm link

我做到了,并且成功了。

【讨论】:

    【解决方案3】:

    打包

    npm pack
    

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

    npm install --global <package_file>.tgz
    

    【讨论】:

      【解决方案4】:

      在使用 NPM 或 Yarn 时,确实有时会出现问题。在这些情况下,请先进行完整的全新安装。

      rm -rf ./node_modules
      
      yarn install
      npm install
      

      如果这不能解决您的问题,请检查package.json 中的bin 属性,它是否正确映射到cli 文件?

      您可以通过运行yarn pack 来检查打包的内容。

      【讨论】:

        【解决方案5】:

        尝试添加

        #!/usr/bin/env node
        

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

        【讨论】:

        • 是的,添加到打字稿文件后工作
        【解决方案6】:

        您是否检查过您的入口点的路径是否正确?我刚刚遇到了同样的问题,我的问题是我没有正确放置路径。

        【讨论】:

          【解决方案7】:

          你的bin 在你的package.json 中像这样:

          {
          "bin": {
              "app": "bin/app"
            },
          }
          

          但首先在您的app 文件中,您应该在顶部添加此#!/usr/bin/env node

          注意

          This will help you

          【讨论】:

            猜你喜欢
            • 2014-10-09
            • 1970-01-01
            • 2021-12-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-10-17
            • 2020-01-05
            • 2017-10-19
            相关资源
            最近更新 更多