1、在package.json文件中指定dependencies和devDependencies
若要指定项目所依赖的包,在package.json 文件中 dependencies 和 devDependencies字段中进行声明,运行npm install
时,npm将下载在package.json
中列出的依赖项和开发依赖项,这些依赖项和开发依赖项必须满足每个依赖项对应的予以版本要求,要查看将安装的软件包版本,请使用semver计算器。
"dependencies"
:您的应用程序在生产中需要的包。"devDependencies"
:仅用于本地开发和测试的包。
1.1 将依赖项添加到 package.json 文件
您可以通过命令行或手动编辑package.json
文件向package.json
文件添加依赖项。
1.2 从命令行中 将依赖项添加到 package.json 文件
要从命令行将依赖项和开发依赖项添加到package.json
文件中,可以使用依赖项的--save-prod
标志(npm install 的默认标志就是这个)或devDependencies的--save-dev
标志将它们安装在包的根目录中。
要向"dependencies"
文件的package.json
属性添加条目,请在命令行上运行以下命令:
npm install <package-name> [--save-prod]
或者 npm install <package-name>,例如:
npm install jiang-isarray
1.3 手动编辑 package.json 文件
要向package.json
文件添加依赖项,请在文本编辑器中添加名为"dependencies"
的属性,该属性引用每个依赖项的名称和语义版本:
"dependencies": { "jiang-isarray": "^1.0.0" }
要将devDependencies添加到package.json
文件,请在文本编辑器中添加名为"devDependencies"
的属性,该属性引用每个devDependency的名称和语义版本:
"devDependencies": { "nodemon": "^2.0.22" }
2、关于语义版本控制
为了保持JavaScript生态系统的健康、可靠和安全,每次对自己的npm包进行重大更新时,我们建议在遵循语义版本控制规范的package.json文件中发布具有更新版本号的包的新版本。遵循语义版本规范可以帮助依赖您的代码的其他开发人员了解给定版本中的更改程度,并在必要时调整自己的代码。
注意:如果您引入的更改破坏了包依赖关系,建议升级当前包对应的版本。
2.1 在已发布的包中增加语义版本
为了帮助依赖您的代码的开发人员,我们建议从1.0.0
开始您的软件包版本,并按如下方式递增:
代码状态 | 阶段 | 规则 | 示例版本 |
首次发布 | 新产品 | 从1.0.0开始 | 1.0.0 |
向后兼容的错误修复 | 修补程序发布 | 增加第三位数 | 1.0.1 |
向后兼容的新功能 | 次要版本 | 增加中间位数并将最后一位数重置为零 | 1.1.0 |
破坏向后兼容性的更改 | 主要版本 | 增加第一位数并将中间位和最后一位数重置为零 | 2.0.0 |
2.2 使用语义版本控制指定包可以接受的更新类型
您可以在包的package.json
文件中指定包可以从依赖项接受哪些更新类型。
例如,要指定可接受的版本范围(最高为1.0.4),请使用以下语法:
- 补丁发布版本:1.0 或 1.0.x 或 ~1.0.4
- 次要版本: 1 或 1.x 或 ^1.0.4
- 主要版本: * 或者 x
依赖示例:
"dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "http-errors": "~1.6.3", "jade": "~1.11.0", "morgan": "~1.9.1" }
2.3 版本范围语法示例
2.3.1 包括不递增semver的第一个非零部分的所有内容,使用字符“^”
举例说明
^1.0.1 ^1.1.1 ^0.0.3
注意:插入符号的行为与0.x版本不同,它只与补丁程序版本匹配。
2.3.2、指定稳定版本的范围
使用 >
, <
, =
, >=
或者是 <=
用于比较,或 -
指定包含范围
举例说明:
>2.1.1 <2.1.0 =2.1.1 >=2.1.1 <=2.1.1 1.0.0 - 2.0.0
注意:连接符两边必须有空格
2.3.3 指定预发布版本范围
使用比较,如 >
举例说明
>1.0.0-alpha >=1.0.0-alpha<2.0.0
2.3.4 在相同的次要范围中包含比特定版本更大的所有内容
使用波浪符号, ~
举例说明
~1.0.0
2.3.5 包括预发布版本,如 alpha
和/或 beta
使用预发布标签
举例说明
1.0.0-rc.1
预发布版本指定为 精确版本
.要指定范围
2.3.6 包含多组版本
使用 || 联合
举例说明
~1.0.0 || >2.0.0
3、向包添加dist-tags
分发标记(dist-tags)是人类可读的标签,可用于组织和标记所发布的包的不同版本。dist-tags补充语义版本控制。除了比语义版本编号更易于阅读之外,标签还允许发布者更有效地分发他们的软件包。
注意:由于dist-tags与语义版本共享一个名称空间,所以避免与现有版本号冲突的dist-tags。我们建议避免使用以数字或字母“v”开头的dist-tags。
3.1 发布带有dist-tag的包
默认情况下,运行npm publish
将使用latest
dist-tag标记您的包。要使用另一个dist-tag,请在发布时使用--tag
标志。
1、在命令行中,切换到包的根目录。
cd /path/to/package
2、运行以下命令,将<tag>
替换为您要使用的标记:
npm publish --tag <tag>
3.2 向包的特定版本添加dist-tag
1、向包的特定版本添加dist-tag
cd /path/to/package
2、运行以下命令,将<package_name>
替换为软件包的名称,将<version>
替换为软件包版本号,将<tag>
替换为分发标记:
npm dist-tag add <package-name>@<version> [<tag>]
3.3 示例
要将“stable”标记添加到1.4.0版本的“example-package”包中,您可以运行以下命令:
npm dist-tag add example-package@1.4.0 stable