npm 是如何将脚本移动到 bin 的?

What does npm do to move a script to the bin?

如题。我想让我的代码只能由 git 下载,我想知道如何在不使用 npm 的情况下将脚本移动到 bin。有没有某种方法可以做到这一点而不必键入整个文件路径和 ./? (Ex: $ ./do/this/really/long/script.sh。)我也希望能够以特定名称将脚本移动到 bin 中。有没有办法做到这一点?类似于 npm 的 JSON bin?

{
  "bin": {
    "blah": "/do/this/really/long/script.sh"
  },
}

我相信您知道 github 和 npm 是完全不同的东西...对,很好。因此,如果用户不必通过手动过程,就无法做您想做的事。只要您在自述文件中明确说明这一点(连同 copy/paste 命令),大多数用户就不会在意。

在幕后,npm 只是在创造 symlinks 东西。我不知道 npm 正在做什么,但你可以做很多事情来实现类似的目标:

Note: You can instruct users on how to do each of these manually, or you can write a copy/paste command to do it... but you have to figure that part out yourself.

  1. 为您的脚本创建一个 alias

  2. 创建指向脚本的符号链接。

  3. 更新 $PATH 变量以包含脚本的路径。 bash 控制台的路径可以相对于 cwd。因此,如果用户当前 bash 进入 C:/foo/bar,而您的 $PATH 配置为 ./bin,那么您的 OS 将在 C:/foo/bar 中查找脚本=15=].