乐趣区

关于javascript:packagejson-指南

一、name
设置软件包的名称。
示例:

"name": "nodejs_cn"

名称必须少于 214 个字符,且不能蕴含空格,只能蕴含小写字母、连字符(-)或下划线(_)。

这是因为当软件包在 npm 上公布时,它会基于此属性取得本人的 URL。

如果在 GitHub 上公开地公布此软件包,则 GitHub 仓库的名称是作为此属性的不错抉择。
二、author
列出软件包的作者名称。

示例:

{"author": "NodeJS 中文网 <mail@nodejs.cn> (http://nodejs.cn)"
}

也能够应用以下格局:


{
  "author": {
    "name": "NodeJS 中文网",
    "email": "mail@nodejs.cn",
    "url": "http://nodejs.cn"
  }
}

三、contributors
除作者外,该我的项目能够有一个或多个贡献者。此属性是列出他们的数组。

示例:


{"contributors": ["NodeJS 中文网 <mail@nodejs.cn> (http://nodejs.cn))"]
}

也能够应用以下格局:

{
  "contributors": [
    {
      "name": "NodeJS 中文网",
      "email": "mail@nodejs.cn",
      "url": "http://nodejs.cn"
    }
  ]
}

四、bugs
链接到软件包的问题跟踪器,最罕用的是 GitHub 的 issues 页面。

示例:


{"bugs": "https://github.com/nodejscn/node-api-cn/issues"}

五、homepage

设置软件包的主页。

示例:

{"homepage": "http://nodejs.cn"}

六、version
指定软件包的以后版本。

示例:

"version": "1.0.0"

此属性遵循版本的语义版本控制记法,这意味着版本始终以 3 个数字示意:x.x.x。

第一个数字是主版本号,第二个数字是次版本号,第三个数字是补丁版本号。

这些数字中的含意是:仅修复缺点的版本是补丁版本,引入向后兼容的更改的版本是次版本,具备重大更改的是主版本。
七、license
指定软件包的许可证。

示例:

"license": "MIT"
八、keywords

此属性蕴含与软件包性能相干的关键字数组。

示例:

"keywords": [
  "email",
  "machine learning",
  "ai"
]

这有助于人们在浏览类似的软件包或浏览 https://www.npmjs.com/ 网站时找到你的软件包。

九、description
此属性蕴含了对软件包的简短形容。

示例:

"description": "NodeJS 中文网入门教程"

如果要将软件包公布到 npm,则这个属性特地有用,人们能够晓得该软件包是干啥用的。
十、repository
此属性指定了此程序包仓库所在的地位。

示例:

"repository": "github:nodejscn/node-api-cn",

留神 github 前缀。其余风行的服务商还包含:

"repository": "gitlab:nodejscn/node-api-cn",

"repository": "bitbucket:nodejscn/node-api-cn",

能够显式地设置版本控制系统:

"repository": {
  "type": "git",
  "url": "https://github.com/nodejscn/node-api-cn.git"
}

也能够应用其余的版本控制系统:


"repository": {
  "type": "svn",
  "url": "..."
}

十一、main
设置软件包的入口点。

当在应用程序中导入此软件包时,应用程序会在该地位搜寻模块的导出。

示例:

"main": "src/main.js"
十二、private
如果设置为 true,则能够避免应用程序 / 软件包被意外公布到 npm 上。

示例:

"private": true

十三、scripts
能够定义一组能够运行的 node 脚本。

示例:

"scripts": {
  "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
  "start": "npm run dev",
  "unit": "jest --config test/unit/jest.conf.js --coverage",
  "test": "npm run unit",
  "lint": "eslint --ext .js,.vue src test/unit",
  "build": "node build/build.js"
}

这些脚本是命令行应用程序。能够通过调用 npm run XXXX 或 yarn XXXX 来运行它们,其中 XXXX 是命令的名称。例如:npm run dev。

能够为命令应用任何的名称,脚本也能够是任何操作。
十五、dependencies
设置作为依赖装置的 npm 软件包的列表。

当应用 npm 或 yarn 装置软件包时:

npm install <PACKAGENAME>
yarn add <PACKAGENAME>

该软件包会被主动地插入此列表中。

示例:


"dependencies": {"vue": "^2.5.2"}

十六、devDependencies
设置作为开发依赖装置的 npm 软件包的列表。

它们不同于 dependencies,因为它们只需装置在开发机器上,而无需在生产环境中运行代码。

当应用 npm 或 yarn 装置软件包时:

npm install --save-dev <PACKAGENAME>
yarn add --dev <PACKAGENAME>

该软件包会被主动地插入此列表中。
示例:


"devDependencies": {
  "autoprefixer": "^7.1.2",
  "babel-core": "^6.22.1"
}

十七、engines
设置此软件包 / 应用程序要运行的 Node.js 或其余命令的版本。

示例:

"engines": {
  "node": ">= 6.0.0",
  "npm": ">= 3.0.0",
  "yarn": "^0.13.0"
}

十八、browserslist
用于告知要反对哪些浏览器(及其版本)。Babel、Autoprefixer 和其余工具会用到它,以将所需的 polyfill 和 fallback 增加到指标浏览器。
示例:

"browserslist": [
  "> 1%",
  "last 2 versions",
  "not ie <= 8"
]

此配置意味着须要反对使用率超过 1%(来自 CanIUse.com 的统计信息)的所有浏览器的最新的 2 个主版本,但不含 IE8 及更低的版本。

十九、命令特有的属性

package.json 文件还能够承载命令特有的配置,例如 Babel、ESLint 等。

每个都有特有的属性,例如 eslintConfig、babel 等。它们是命令特有的,能够在相应的命令 / 我的项目文档中找到如何应用它们。

二十、软件包版本

在下面的形容中,曾经看到相似以下的版本号:〜3.0.0 或 ^0.13.0。它们是什么意思,还能够应用哪些其余的版本说明符?

该符号指定了软件包能从该依赖承受的更新。

鉴于应用了 semver(语义版本控制),所有的版本都有 3 个数字,第一个是主版本,第二个是次版本,第三个是补丁版本,详见规定。

还能够在范畴内组合以上大部分内容,例如:1.0.0 || >=1.1.0 <1.2.0,即应用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。

本文转自 http://nodejs.cn/learn/the-package-json-guide

退出移动版