package.json——发布要素
在现代化的前端项目中都会有package.json文件的存在,其作用是项目的清单,包含项目中除script引入之外的所有依赖列表、项目名称、编译环境要求、最低运行环境等等。
package.json没有严格的格式要求(对配置项的书写顺序、自己额外添加的字段),只需要满足json文件的书写规则即可,同时package.json 中最重要的两个字段就是 name 和 version,它们都是必须的,如果没有,就无法正常执行 npm install 命令。npm 规定 package.json 文件是由名称和版本号作为唯一标识符的。
以上是一个简单的package.json文件示例,示例包含的字段都会在发布npm包时起到一定作用:
name
设置了应用程序/软件包的名称,名称必须少于 214 个字符,且不能包含空格,只能包含小写字母、连字符(-
)或下划线(_
),这是因为当软件包在npm
上发布时,它会基于此属性获得自己的 URL;名称可以作为参数被传入 require(""),用来导入模块,所以应当尽可能的简短、语义化;名称不能和其他模块的名称重复,可以使用 npm view 命令查询模块名是否重复,如果不重复就会提示 404。license
指定软件包的许可证,也就是使用协议上例中使用MIT此处不展开说明。keywords
表明了软件包的关键字,用于NPM搜索,和标记软件包的相关领域。version
标记应用程序/软件包版本。版本号的命名遵循语义化版本 2.0.0 规范,格式为:主版本号. 次版本号. 修订号。npm命令:npm view xxx version就是查看对应的项目version的。repository
标记软件包的仓库地址,也可以直接写明版本控制系统地址。description
是应用程序/软件包的简短描述。homepage
标记了项目主页地址(官方网站、源码地址)。author
标明了包的作者,也可以使用对象的格式。contributors
标明了包的贡献者,也可以使用对象的格式。bugs
项目的bug反馈地址,此例中使用github的issues。private
如果设置为true
,则可以防止应用程序/软件包被意外地发布到npm
,本例中设置为false,意为可以发布到npm公开使用。engines
设置了此软件包/应用程序在哪个版本的 Node.js 上运行。browserslist
用于告知要支持哪些浏览器(及其版本)。