Skip to main content

通过node开发一个CLI

Reference

在程序入口文件使用 Shebang

#!/usr/bin/env node

在计算领域中,Shebang(也称为 Hashbang)是一个由井号和叹号构成的字符序列#!,在文件中存在 Shebang 的情况下,类Unix操作系统的程序加载器会分析 Shebang 后的内容,将这些内容作为解释器指令,并调用该指令。

在直接调用脚本时,调用者会利用 Shebang 提供的信息调用相应的解释器,从而使得脚本文件的调用方式与普通的可执行文件类似。

使用 package.json 中的 bin 字段

{
"bin": {
"webpack": "./cli.js"
}
}

它的作用是将命令和本地文件关联起来,当 全局安装 该 package 时,会给 cli.js 创建一个软链接指向 /usr/local/bin/webpack,这样我们在命令行中就可以直接使用 webpack 这个命令了,使用该命令后会执行 cli.js 这个文件。

在可执行文件的头部加上 #!/usr/bin/env node 的目的就是在执行该文件时使用 node 环境执行,否则默认情况下不会使用 node 执行。

如果没有 全局安装 该 package,当此包作为依赖项安装在另一个包中时,可以直接通过 npm exec 或通过 npm run-script 调用它们所在其他脚本中的名称。