npm package
npm-package.json
description : 包的描述
在其中加入说明。这是一个字符串。这可以帮助人们发现您的包裹
name : 包名
如果您计划发布包,则package.json中最重要的内容是名称和版本字段,因为它们是必需的。名称和版本一起形成一个假定完全唯一的标识符。对程序包的更改应随更改版本一起提供。如果您不打算发布包,则名称和版本字段是可选的。这个名字就是你的名字
一些规则:
- 名称必须小于或等于214个字符。这包括范围包的范围。
- 名称不能以点或下划线开头。
- 新包不得在名称中包含大写字母。
- 该名称最终成为URL的一部分,命令行上的参数和文件夹名称。因此,名称不能包含任何非URL安全字符。
一些技巧:
- 请勿使用与核心节点模块相同的名称。
- 不要在名称中加上“js”或“node”。假设它是js,因为你正在编写一个package.json文件,你可以使用“engines”字段指定引擎。(见下文。)
- 该名称可能作为参数传递给require(),因此它应该是简短的,但也是合理描述的。
- 你可能想要检查npm注册表,看看是否已经有了这个名称的东西,然后再过于依赖它了。https://www.npmjs.com/
version : 版本
如果您计划发布包,则package.json中最重要的内容是名称和版本字段,因为它们是必需的。名称和版本一起形成一个假定完全唯一的标识符。对程序包的更改应随更改版本一起提供。如果您不打算发布包,则名称和版本字段是可选的。 版本必须由
node-semver 解析 ,它与npm捆绑在一起作为依赖项。(npm install semver自己动手使用。)
keywords :关键字
将关键字放入其中。这是一个字符串数组。这有助于人们发现您列出的包裹npm search。
homepage :主页
项目主页的网址。
bugs : 错误
项目问题跟踪器的URL和/或应报告问题的电子邮件地址
它应该如下所示:
{
"url" : "https://github.com/owner/project/issues",
"email" : "[email protected]"
}
您可以指定一个或两个值。如果只想提供url,可以将“bugs”的值指定为简单字符串而不是对象。
如果提供了URL,则 npm bugs
命令将使用它。
main : 主文件
主要字段是模块ID,它是程序的主要入口点。也就是说,如果您的软件包已命名foo, 并且用户安装了该软件包,然后安装了该 软件包require("foo"),那么将返回主模块的exports对象。这应该是相对于包文件夹根目录的模块ID。对于大多数模块而言,最有意义的是拥有一个主脚本并且通常没有其他内容。
browser : 浏览器
如果您的模块用于客户端,则应使用 browser 字段而不是 main 字段。这有助于提示用户它可能依赖于Node.js模块中不可用的基元。(例如window)
bin : binary
很多软件包都有一个或多个可以安装到PATH中的可执行文件。npm使这很简单(事实上,它使用此功能来安装“npm”可执行文件。) 要使用它,请bin在package.json中提供一个字段,该字段是命令名称到本地文件名的映射。在安装时,npm会将该文件符号链接到 prefix/bin全局安装或./node_modules/.bin/本地安装。
例如,myapp可以这样:
{ "bin" : { "myapp" : "./cli.js" } }
然后执行
npm link
就可以把 myapp 当作全局的命令使用, 运行时执行./cli.js
man
和项目相关的文档页面(man page)
repository
"repository": {
"type" : "git",
"url" : "https://github.com/facebook/react.git",
"directory": "packages/react-dom"
}
scripts :脚本
“scripts”属性是一个包含脚本命令的字典,这些命令在包的生命周期中的不同时间运行。关键是生命周期事件,值是在该点运行的命令。
module
遵循ES Module规范的打包工具识别的主入口文件字段
typings
指定typescript 类型声明文件
peerDependencies
peerDependencies字段,就是用来供插件指定其所需要的主工具的版本
如: antd指定依赖的react 和react-dom 的版本大于16
"peerDependencies": {
"react": ">=16.0.0",
"react-dom": ">=16.0.0"
},
dependencies
dependencies字段指定了项目运行所依赖的模块
devDependencies
devDependencies指定项目开发所需要的模块。
dependencies和 devDependencies 都指向一个对象。该对象的各个成员,分别由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。
指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。
波浪号(tilde)+指定版本:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。
插入号(caret)+指定版本:比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
latest:安装最新版本。
pre-commit
指定git commit 执行之前要运行的命令 依赖 pre-commit 模块 需要install pre-commit
上一篇: 实践中的重构26_奇怪的接口注释
下一篇: npm scripts 使用指南