配置文件package.json详解

本文详细解析了package.json文件的各项配置,包括name、version、description、keywords、homepage、bugs、license、作者、资金、发布文件、主入口、浏览器适配、命令行工具、man文档、目录规范、代码仓库、脚本、环境变量、依赖关系(生产、开发、兼容、打包、可选)以及系统和CPU要求。这些配置帮助管理和发布npm模块。

本文取自npm官网剖析npm的包管理机制进行总结和梳理。

在这里插入图片描述

一、name(名称)

在package.json 中,发布时,name 和 version是必须填写的 ,这两个属性组成一个 npm 模块的唯一标识。不发布则是可选的。

1、命名规则

  1. 名称必须小于或等于214个字符。这包括定域包的作用域。
  2. 限定作用域的包的名称可以以点或下划线开头。没有作用域,这是不允许的。
  3. 新包的名称中不能有大写字母。
  4. 名称最终成为URL、命令行参数和文件夹名称的一部分。任何非url安全的字符在名称中都不能使用,可以使用 validate-npm-package-name 包来检测包名是否合法。

2、注意事项

  1. 不要使用与核心节点模块相同的名称
  2. 不要在名称中加上js或者node
  3. 名称可能会作为参数传递给require(),因此它应该很短,但也要具有相当的描述性
  4. 在使用名称前,需要检查npm注册表,看是否已经有那个名字的东西

查看包是否被占用:执行 npm view packageName 查看包是否被占用,并可以查看它的一些基本信息。若包名称从未被使用过,则会抛出 404 错误。

二、version(版本)

版本必须是可以被node-semver解析的,node-semver作为npm的依赖项绑定在一起。(npm install semver

三、description(描述)

介绍模块的描述信息(字符串),方便别人了解你的模块。使用 npm search 检索模块,这有助于人们发现你的包。

四、keywords(关键字)

模块中见天关键字(字符串数组)。这有助于人们使用 npm search 检索发现你的包。

五、homepage(主页)

指定该模块的主页。

"homepage": "https://github.com/owner/project#readme"

六、bugs(提交bug地址)

指定一个地址或者一个邮箱,对你的模块存在疑问的人可以到这里提出问题。

// 如果提供了url,它将被npm bugs命令使用

"bugs" : {
   
    
	"url" : "https://github.com/owner/project/issues",
	"email" : "project@hostname.com"
}

七、license(协议)

用于指定软件的开源协议,开源协议里面详尽表述了其他人获得你代码后拥有的权利,可以对你的的代码进行何种操作,何种操作又是被禁止的。同一款协议有很多变种,协议太宽松会导致作者丧失对作品的很多权利,太严格又不便于使用者使用及作品的传播,所以开源作者要考虑自己对作品想保留哪些权利,放开哪些限制。

软件协议可分为开源和商业两类,对于商业协议,或者叫法律声明、许可协议,每个软件会有自己的一套行文,由软件作者或专门律师撰写,对于大多数人来说不必自己花时间和精力去写繁长的许可协议,选择一份广为流传的开源协议就是个不错的选择。

以下就是几种主流的开源协议:https://choosealicense.com 获取更详细的开源协议说明)
在这里插入图片描述

  • MIT:只要用户在项目副本中包含了版权声明和许可声明,他们就可以拿你的代码做任何想做的事情,你也无需承担任何责任。
  • Apache:类似于 MIT,同时还包含了贡献者向用户提供专利授权相关的条款。
  • GP
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值