package.json 各属性说明

package.json是Node.js项目的重要配置文件,它包含了项目名称、版本、描述、关键字、作者、贡献者、许可证、依赖等信息。name字段规定了项目的唯一名称,version用于版本管理,description是项目简介,keywords便于搜索,homepage指向项目官网,bugs提供问题反馈途径,license指明项目许可。此外,files、main、bin、man、directories、repository、scripts、config、dependencies、devDependencies、peerDependencies等字段分别用于定义项目文件、入口、可执行文件、手册、代码仓库、脚本、配置和依赖管理。
摘要由CSDN通过智能技术生成

package.json

package.json 作为项目(模块)的描述文件,需要了解其各属性的作用是什么。总结如下:

name

{ String }
项目名称。
如果想将项目发布到 npm 上去的话,该属性必需,且保证该 name 没有被占用。

命名规则:

  • 长度小于等于 214 个字符
  • 不能以点(.)或下划线(_)开头
  • 新的包不能有大写字母
  • 因为包名会被用作:URL 的一部分;命令行的参数;文件夹名。所以,包名不能包含非法字符

官方建议:

  • 不要使用和 Node 核心模块一样的名称
  • 包名中不要包含 jsnode 等字眼。默认就是 js 文件,引擎也可以通过 engines 字段指定
  • 包名起了是给别人用的,所以最好短点,且见名知意
  • 如果你想将项目发布到 npm 上的话,包名必需且唯一。所以起名之前最好先去官网查查有没有重名

此外,包还可以加前缀,将包放到同意的命名空间下(如 babel7),如:@myorg/mypackage。详见 npm-scope

version

{ String }
项目版本号。
如果想将项目发布到 npm 上去的话,版本号必需,且和 name 组成唯一确定的包文件。
如果想升级项目并发布,只能更改版本号。
npm 的版本号是使用 node-semver 模块解析的。
格式采用 {major}.{feature}.{patch} (主版本 . 次要版本 . 补丁版本)模式:

  • patch:修复 bug
  • feature:新增功能
  • major:重构 API

description

{ String }
项目描述,可用于 npm 官网搜索。

keywords

{ String }
项目关键字,可用于 npm 官网搜索。

homepage

{ String }
项目官网地址。

bugs

{ String | Object }
提交项目 bug 的方式。格式如下:

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

属性解释:

  • url:提交 issue 的地址
  • email:联系邮箱
    这两个值都非必填,如果只提供 url 地址,可以写成如下格式:
"bugs" : "https://github.com/owner/project/issues"

如果提供了 url,npm bugs 命令会使用这个地址。

license

{ String | Object }
项目 license 类型。
除了设置合适的 license 类型外,还可以设置 "private": true 来避免项目发布。

author

{ String | Object }
项目作者,只能存在一个作者。
当属性为 Object 时,格式为:

{
   
  "name" : "Barney Rubble",
  "email" : "b@rubble.com",
  "url" : "http://barnyrubble.tumblr.com/"
}

当属性为 String 时,格式为:

"author" : "Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"

contributors

{ Array }
贡献者,有多个。
列表中的元素和 author 格式一致。

maintainers

{ Array }
维护者,同 contributors

files

{ Array | String }
默认:"*"
当别人安装你的包时,所需要安装的文件。

遵循以下规则:

  • 命名规则和 .gitignore 一样,可以是个文件,也可以是文件夹,且支持 glob 规则(如 ***/* 等)
  • 可以在根目录添加 .npmignore 文件来排除一些文件和文件夹
  • 如果 .npmignore 缺省,将使用 .gitignore 来代替
  • 不同通过 .npmignore.gitignore 来排除 files 属性里面包含的文件

不管如何配置,以下文件会始终会包含到包中:

  • package.json
  • README
  • CHANGES / CHANGELOG / HISTORY
  • LICENSE / LICENCE
  • NOTICE
  • The file in the “main” field

README, CHANGES, LICENSE & NOTICE 支持任何后缀。

不管如何配置,以下文件会始终不会包含到包中:

  • .git
  • CVS
  • .svn
  • .hg
  • .lock-wscript
  • .wafpickle-N
  • .*.swp
  • .DS_Store
  • ._*
  • npm-debug.log
  • .npmrc
  • node_modules
  • config.gypi
  • *.orig
  • package-lock.json (use shrinkwrap instead)

main

{ String }
默认:"./index.js"
其他项目引用该项目的时的入口文件。
如:你的项目名是:foo,package.json 中 "main" : "lib/index.js"。当其他项目引用你项目时(require('foo')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值