作用
在安装第三方带有bin字段的npm,那可执行文件会被链接到当前项目的./node_modules/.bin中,在本项目中,就可以很方便地利用npm执行脚本(package.json文件中scripts可以直接执行:'node node_modules/.bin/myapp');
- 如果是全局安装,npm将会使用符号链接把这些文件链接到/usr/local/bin/
- 如果是本地安装,会链接到./node_modules/.bin/。
比如,要使用myapp作为命令时可以这么做:
{ "bin" : { "myapp" : "./cli.js" } }
这么一来,当你全局安装myapp,npm会从cli.js文件创建一个到/usr/local/bin/myapp的符号链接(这使你可以直接在命令行执行myapp)。许多包有一个或多个可执行文件希望被安装到系统路径。它是一个命令名和本地文件名的映射。
关于上文提到的node node_modules/.bin/myapp,啥时候可以不用写node,及后面的路径?
当需要node环境时就需要加上node前缀,既然加上了node,那node_modules/.bin也是必须的(因为node myapp会去查找当前路径下的myapp.js,这样肯定是不对的);简便的方式:在上文的cli.js中第一行写入#!/usr/bin/env node,告诉系统用node解析,这样命令就可以简写成myapp