如何令你的npm包全局可执行

写在前面的

npm包的编写发布已经会了,但是如何另它像gulp一样可以直接在命令行全局执行呢?

linux环境的可执行命令都会放在/bin 目录下。

mac环境的可执行命令有一些是放在/usr/local/bin 目录下的

所以想让我们的包可以命令行执行,就得让我们的入口可执行脚本文件出现在在bin目录下,幸运的是,这个操作npm帮我们做了。如果想让npm帮我们实现这个功能,需要做如下配置

  • 在入口脚本文件第一行添加 #!/usr/bin/env node 来告诉shell,这个脚本是要通过node来执行。
  • 在 package.json 文件中添加字段 bin
"bin":{
    "执行的命令":"添加了#!/usr/bin/env node的入口文件"
}

比如

"bin":{
    "xxx":"main.js"
}
  • 配置好以后,可以通过npm link进行调试。
    • 在写好的包的路径控制台输入 npm link
    • 在一个新的路径 控制台输入 npm link xxx
    • 在当前路径 控制台输入 xxx
    • main.js被执行了

如果其他人想使用你的包,安装方式为 npm install 你的包地址 -g ,前提是你发布的仓库是github。 安装完成后执行xxx即可

上篇利用nginx实现反向代理
下篇如何编写并发布一个npm包