如何令你的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即可