package.json 中的 bin 字段作用
我们在下载 npm 包后,查看 npm 包的 package.json 有些包会有 bin 字段例如我们常用的 webpack-cli 包那么 bin 字段有什么用呢?官方文档链接许多软件包都具有一个或多个要安装到 PATH 中的可执行文件。bin 字段是命令名到本地文件名的映射。在安装时,npm 会将文件符号链接到 prefix/bin 以进行全局安装或./node_modules/.bin/本
我们在下载 npm 包后,查看 npm 包的 package.json 有些包会有 bin 字段
例如我们常用的 webpack-cli 包
那么 bin 字段有什么用呢?
许多软件包都具有一个或多个要安装到 PATH 中的可执行文件。
bin 字段是命令名到本地文件名的映射。在安装时,npm 会将文件符号链接到 prefix/bin 以进行全局安装或./node_modules/.bin/本地安装。
当我们使用 npm 或者 yarn 命令安装包时,如果该包的 package.json 文件有 bin 字段,就会在 node_modules 文件夹下面的 .bin 目录中复制了 bin 字段链接的执行文件。我们在调用执行文件时,可以不带路径,直接使用命令名来执行相对应的执行文件。

下面是调用的命令
scripts: {
start: './node_modules/bin/someTool.js build'
}
// 简写为
scripts: {
start: 'someTool build'
}
上面的命令在调用时需要使用:
yarn start
但是如果我们不想在前面使用 yarn,而是直接在命令行中调用命令则需要用 yarn link 或者 npm link 将包的 bin 文件链接到 node 全局
或者也可以直接将包安装到全局 yarn add 你的包名 -g 或者 npm install 你的包名 -g
这样就可以直接在命令行中使用 bin 字段里注册的命令,而不需要加任何其余字段。
例如 vue-cli 中:
通过 npm install vue-cli -g
将命令安装到全局,然后使用脚手架创建项目时:vue create hello-world
即可直接在命令行中调用
更多推荐


所有评论(0)