如下是一段package.json中的代码,其中可以看到版本号等信息,除此之外还能看到一个bin字段,本文主要讲的就是bin字段的用处

{"name": "mys-gj","version": "1.0.0","description": "个人制作米游社签到工具--未完成版","main": "index.js","license": "MIT","dependencies": {"axios": "^0.27.2","cheerio": "^1.0.0-rc.12","puppeteer": "^15.5.0"},"bin":{"myss":"./index.js"}
}

首先我们思考一个问题
我们用过vue-cli等工具包,全局安装之后,我们可以直接使用vue create等命令
实际上能够这样使用的原因,就是使用了bin字段注册命令

接下来就以一个脚本文件为例子为大家演示一下bin是如何发挥作用的

1.解释器声明
这是一个脚本文件,index.js就是主执行文件,我们在最上面声明

#!/usr/bin/env node


作用是让脚本在node环境下运行(因为这个是node脚本)

2.添加bin,注册命令

  "bin":{"myss":"./index.js"}

myss就是注册的命令,类似vue-cli中的vue create,全局安装或者链接全局后就可以使用该命令
./index.js就是可执行文件的路径

3.打成全局包
使用yarn link链接全局

这样我们就可以直接在在命令行执行命令myss

分析
在安装第三方带有bin字段的npm包时,可执行文件就会被链接到当前项目的./node_modules/.bin中,就可以使用node node_modules/.bin/myapp执行

但如果是把包全局安装,npm就会把文件链接到prefix/bin中,我们就可以直接全局使用myss命令执行脚本了,更加简便

总结:
bin字段用于注册运行脚本的命令,全局安装后,可在全局执行该命令。

注意:
一般我们在自己开发时进行测试时使用yarn link链接到全局,把脚本打包之后,别人在安装使用时使用全局安装

package.json中bin字段的用处相关推荐

  1. 使用npm打包后生成的package.json中重要字段含义

    {"name": "demo",// 包名称,不能和npm平台上其他包重复"version": "1.0.0",// 版 ...

  2. package.json 中的 Module 字段是干嘛的

    引入 最近团队的一个同学在搞 npm library 源码的调试插件,因为内部的一个组件库含有大量的逻辑,在某个项目中不经意就出现一个磨人的 bug,但是组件库发布都是打包编译后的代码,而且没有 pu ...

  3. 【前端工程化】配置package.json中scripts命令脚本,新手必学

    每日鸡汤:你总要努力追上那个曾经被赋予众望的自己吧 目录 前言 一.运行npm run 命令之后会干啥? 1. scripts里面写啥 2. node_modules/.bin 二进制可执行文件 二. ...

  4. SparkSQL 自定义UDF提取json中的字段

    数据格式:      自定义UDF提取json中的字段 95002|{"name":"刘能","url":"www.runoob. ...

  5. 前端package.json中的scripts

    前言 一直很好奇package.json里的scripts属性,查了一下文章,问了一下公司里的前辈.大体上理解了,因此写这篇文章来记录一下. 本文默认你前端项目已经安装并配置了相关依赖.添加链接描述 ...

  6. npm更新模块并同步到package.json中

    使用原始npm 1.查看需要更新的版本 npm outdated 该命令会列出所有需要更新的项目 2.修改package.json中需要更新的包对应的版本号 npm update 由于npm upda ...

  7. Node.js中package.json中库的版本号详解(^和~区别)

    Node.js中package.json中库的版本号详解(^和~区别) 当我们查看package.json中已安装的库的时候,会发现他们的版本号之前都会加一个符号,有的是插入符号(^),有的是波浪符号 ...

  8. java解析sql查询字段_sql解析json格式字段 如何获取json中某个字段的值?

    java将json数据解析为sql语句?小编给你倒一杯热水.可你惦记着其他饮料,所以你将它放置一旁.等你想起那杯水时,可惜它已经变得冰冷刺骨. 图片中是json数据,每个数据的开头都有表名称,操作类型 ...

  9. android中json插件,【Android原生插件】package.json中关于第三方aar的配置

    按照文档(https://ask.dcloud.net.cn/article/35414)所说: dependencies节点特殊说明 android插件中集成的第三方SDK 如果是jar或so放入到 ...

最新文章

  1. 奠定了整个计算机科学的基础是什么,冯 诺依曼对计算机科学发展所作的贡献是什么...
  2. 0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00740000 时发生访问冲突。...
  3. 【正一专栏】最好的回击是打得你好无脾气
  4. sql server 关联left join条件on和where条件的区别
  5. Hibernate的延迟加载
  6. 记一次 .NET 车联网云端服务 CPU爆高分析
  7. 开源SQL-on-Hadoop系统一览
  8. GIT commit问题 No errors and 30 warnings found. Would you like to review them?
  9. SpringMvc-ResponseBodyAdvice接口与@ControllerAdvice注解
  10. 创建ajax及用法,Ajax的简单使用
  11. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
  12. Java虚拟机(JVM)你只要看这一篇就够了!
  13. Wonderware-InTouch 报表查询SQL数据库,用表格控件做出的报表图例
  14. 计算机图书馆管理系统论文模板,基于Java的图书馆管理系统计算机科学与技术毕业设计(论文)...
  15. SVN忽略提交文件设置
  16. 无人车传感器 GPS 深入剖析
  17. 【中医学】9 方剂-1
  18. deepin/ubantu下 mysql 1698错误解决
  19. day09---(02)课程大纲-小节添加修改删除(前端)
  20. 视频基础知识—720P/1080i/1080P

热门文章

  1. Zr-MOF修饰的聚多巴胺包覆的磁性石墨烯材料|Zr-MOF改性聚酰胺|齐岳生物
  2. 第十一届“泰迪杯”挑战赛作品提交仅剩2天了!!!
  3. 【职场】辞职的时间节点有讲究,你知道吗?
  4. 贝叶斯概率问题(美团笔试题)
  5. 期货增仓下跌代表什么(期货增仓下跌什么意思)
  6. konva实现图层跟随鼠标缩放或者根据中心位置缩放
  7. 又一款鼠标管理软件,十分强大
  8. c语言漫函数,漫谈C指针:函数名其实也是指针
  9. 思购趣拼--思购趣拼系统开发源码分享
  10. 寻找最大的钻石有多难