向npm注册中心发布包(下)

news/2025/2/1 14:07:30/

目录

1、在package.json文件中指定dependencies和devDependencies

1.1 将依赖项添加到 package.json 文件

1.2 从命令行中 将依赖项添加到 package.json 文件

1.3 手动编辑 package.json 文件

2、关于语义版本控制

2.1 在已发布的包中增加语义版本

2.2 使用语义版本控制指定包可以接受的更新类型

2.3 版本范围语法示例

2.3.1 包括不递增semver的第一个非零部分的所有内容,使用字符“^”

2.3.2、指定稳定版本的范围

2.3.3 指定预发布版本范围

2.3.4 在相同的次要范围中包含比特定版本更大的所有内容

2.3.5 包括预发布版本,如 alpha 和/或 beta

2.3.6 包含多组版本

3、向包添加dist-tags 

3.1 发布带有dist-tag的包

3.2 向包的特定版本添加dist-tag

3.3 示例


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


http://www.ppmy.cn/news/990489.html

相关文章

SG函数Nim游戏博弈论

移棋子游戏 题目 https://vjudge.csgrandeur.cn/problem/LibreOJ-10243 给定一个有 N 个节点的有向无环图&#xff0c;图中某些节点上有棋子&#xff0c;两名玩家交替移动棋子。 玩家每一步可将任意一颗棋子沿一条有向边移动到另一个点&#xff0c;无法移动者输掉游戏。 对…

速度快\颜色准\功能多,移动端HEIF图片解码实现方案

HEIF图片压缩格式是一种使用HEVC编码技术存储图像数据的方式&#xff0c;在同等质量下相比JPEG可节省50%以上空间&#xff0c;无论是节约包体还是节省带宽&#xff0c;使用HEIF格式都能有所收益。 基于百度智能云音视频处理MCP的自研BD265编码器&#xff0c;百度智能云对象存储…

【Linux命令200例】lsattr用于查看文件或目录的属性

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入…

MySQL检索数据和排序数据

目录 一、select语句 1.检索单个列&#xff08;SELECT 列名 FROM 表名;&#xff09; 2.检索多个列&#xff08;SELECT 列名1&#xff0c;列名2&#xff0c;列名3 FROM 表名;&#xff09; 3.检索所有的列&#xff08;SELECT * FROM 表名;&#xff09; 4.检索不同的行&#x…

前端文件上传实践与后端处理——文件分块上传

文件上传是现代Web应用程序中常见的功能之一。在这篇博客中&#xff0c;我们将探讨一个简单但完整的前端文件上传实践&#xff0c;同时提供一个后端示例&#xff0c;演示如何处理上传的文件。我们将使用JavaScript作为前端语言&#xff0c;并结合Node.js作为后端环境。让我们开…

2022 RoboCom 世界机器人开发者大赛-本科组(省赛)

文章目录 1、不要浪费金币2、智能服药助手3、跑团机器人4、攻略分队5、树与二分图 1、不要浪费金币 哲哲最近在玩一个游戏&#xff0c;击杀怪物能获得金币 —— 这里记击杀第 i 个怪物获得的金币数量为 P i ​ 。 然而这个游戏允许拥有的金币数量是有上限的&#xff0c;当超过…

【机器学习】Multiple Variable Linear Regression

Multiple Variable Linear Regression 1、问题描述1.1 包含样例的X矩阵1.2 参数向量 w, b 2、多变量的模型预测2.1 逐元素进行预测2.2 向量点积进行预测 3、多变量线性回归模型计算损失4、多变量线性回归模型梯度下降4.1 计算梯度4.2梯度下降 首先&#xff0c;导入所需的库 im…

前端请求后端接口返回错误码

1、如果 HTTP Code 是 2xx 范围内的&#xff0c;那通常表明请求已经成功处理&#xff0c;并且可以根据具体的 HTTP Code 进一步判断请求的处理结果。比如&#xff1a; HTTP Code 200 表明请求成功&#xff0c;并返回了请求资源&#xff1b;HTTP Code 204 表明请求成功&#xf…