中bin的用法

时间:2025-05-14 13:31:43

最近在写一些自动化脚本,研究了一下中bin的用法
之前了解到的npm link,是给bin属性赋值,然后将用文件夹名称当作命令就可以执行,但如果想用其他的命令而非当前文件夹名称就需要对bin属性重新配置。
在项目根目录下新建

#!/usr/bin/env node
function run () {
   console.log('cli demo');
}
run();

#!/usr/bin/env node 这段话的意思是让使用 node 进行脚本的解释程序。

 "bin": {
    "demo": ""
  },

这样我们只要运行npm link就可以使用demo这个命令了。

bin 字段是命令名到本地文件名的映射。在安装时,npm 会将文件符号链接到 prefix/bin 以进行全局安装或./node_modules/.bin/本地安装。
当我们使用 npm 或者 yarn 命令安装包时,如果该包的 文件有 bin 字段,就会在 node_modules 文件夹下面的 .bin 目录中复制了 bin 字段链接的执行文件。我们在调用执行文件时,可以不带路径,直接使用命令名来执行相对应的执行文件。
如果想要打成全局包才可以使用该命令,打成全局包的命令

npm install . -g

或者

npm link