Package.json 属性说明

package.json文件可以手工编写,也可以使用npm init命令自动生成。

name - 包名。

version - 包的版本号。

npm版本号规范
如果一个项目打算与别人分享,应该从 1.0.0 版本开始。以后要升级版本应该遵循以下标准:

补丁版本:解决了 Bug 或者一些较小的更改,增加最后一位数字,比如 1.0.1
小版本:增加了新特性,同时不会影响之前的版本,增加中间一位数字,比如 1.1.0
大版本:大改版,无法兼容之前的,增加第一位数字,比如 2.0.0

description - 包的描述。

homepage - 包的官网 url 。

author - 包的作者姓名。

contributors - 包的其他贡献者姓名。

dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。

devDependencies - 开发环境、测试环境依赖包列表

repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。

main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。

keywords - 关键字

peerDependencies字段,就是用来供插件指定其所需要的主工具的版本。

{
  "name": "chai-as-promised",
  "peerDependencies": {
    "chai": "1.x"
  }
}

bin项用来指定各个内部命令对应的可执行文件的位置。

"bin": {
  "someTool": "./bin/someTool.js"
}

上面代码指定,someTool 命令对应的可执行文件为 bin 子目录下的 someTool.js。Npm会寻找这个文件,在node_modules/.bin/目录下建立符号链接。在上面的例子中,someTool.js会建立符号链接npm_modules/.bin/someTool。由于node_modules/.bin/目录会在运行时加入系统的PATH变量,因此在运行npm时,就可以不带路径,直接通过命令来调用这些脚本。

scripts: {  
  start: './node_modules/someTool/someTool.js build'
}

// 简写为

scripts: {  
  start: 'someTool build'
}

config字段用于添加命令行的环境变量。

{
  "name" : "foo",
  "config" : { "port" : "8080" },
  "scripts" : { "start" : "node server.js" }
}

其他
browser字段
browser指定该模板供浏览器使用的版本。Browserify这样的浏览器打包工具,通过它就知道该打包那个文件。

"browser": {
  "tipso": "./node_modules/tipso/src/tipso.js"
},

engines 字段
engines字段指明了该模块运行的平台,比如 Node 的某个版本或者浏览器。

{ "engines" : { "node" : ">=0.10.3 <0.12" } }

该字段也可以指定适用的npm版本。

{ "engines" : { "npm" : "~1.0.20" } }

man字段
man用来指定当前模块的man文档的位置。

"man" :[ "./doc/calc.1" ]

preferGlobal字段
preferGlobal的值是布尔值,表示当用户不将该模块安装为全局模块时(即不用–global参数),要不要显示警告,表示该模块的本意就是安装为全局模块。

style字段
style指定供浏览器使用时,样式文件所在的位置。样式文件打包工具parcelify,通过它知道样式文件的打包位置。

"style": [
  "./node_modules/tipso/src/tipso.css"
]

browserslist -

"browserslist": [
    "> 1%",
    "last 2 versions",
    "Android >= 3.2", 
    "Firefox >= 20", 
    "iOS 7"
  ]

这代表这个项目的浏览器兼容情况。
白话就是我这个项目兼容绝大多数的,最新的和iOS7系统下的浏览器。不兼容Android 3.2系统以下和Firefox20以下的浏览器
像这些" > 1%", “last 2 versions” 都是查询参数。
查询参数很强大,比如我想查看中国人使用浏览器的情况请输入 > 1% in CN。竟然还有IE8 >_<。对比美国> 1% in US的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package.json 是 Node.js 项目中重要的配置文件,它包含了多个属性,下面是各个属性的详解: 1. "name": 项目的名称,必须是唯一的,且不允许使用大写字母和空格,一般使用小写字母、短横线和下划线组合而成。 2. "version": 项目的版本号,采用语义化版本号规范,格式为 X.Y.Z,其中 X 表示主版本号、Y 表示次版本号、Z 表示修订版本号。 3. "description": 项目的描述信息,可以简要说明项目的功能和特点。 4. "keywords": 项目的关键字,用于搜索引擎优化和分类。 5. "homepage": 项目的网站地址,一般是 Github Pages 或其他静态网站托管服务。 6. "repository": 项目的代码仓库地址,可以是 Github、Gitlab 等代码托管平台。 7. "author": 项目的作者信息,可以是个人或组织,包括名称、邮箱、网站等。 8. "license": 项目的许可证信息,表示开源协议和使用限制,一般采用 SPDX 格式。 9. "dependencies": 项目的生产依赖项,表示项目运行所必需的模块和版本号。 10. "devDependencies": 项目的开发依赖项,表示项目开发所必需的模块和版本号。 11. "peerDependencies": 项目的同依赖项,表示项目与其他模块的兼容性。 12. "scripts": 项目的脚本命令,表示自定义命令和执行顺序,可通过 npm run 命令执行。 13. "config": 项目的配置信息,可以是自定义的变量和值,供脚本命令使用。 14. "files": 项目的源代码和发布文件列表,表示那些文件需要包含在发布包中。 15. "engines": 项目的 Node.js 和 NPM 版本要求,表示项目所需的 Node.js 和 NPM 版本范围。 16. "os": 项目支持的操作系统列表,表示项目可以运行的操作系统类型。 17. "cpu": 项目支持的 CPU 架构列表,表示项目可以运行的 CPU 类型。 总之,package.json 属性是 Node.js 项目中非常重要的配置信息,可以帮助我们管理依赖项、版本号、脚本命令等方面,有助于提高项目的可维护性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值