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

news2024/11/23 11:53:02

目录

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.coloradmin.cn/o/795503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS7系统Nvidia Docker容器基于TensorFlow2.12测试GPU

CentOS7系统Nvidia Docker容器基于TensorFlow1.15测试GPU 参考我的另一篇博客 1. 安装NVIDIA-Docker的Tensorflow2.12.0版本 1. 版本依赖对应关系&#xff1a;从源代码构建 | TensorFlow GPU 版本Python 版本编译器构建工具cuDNNCUDAtensorflow-2.6.03.6-3.9GCC 7.3.1Ba…

Linux设置密码复杂度

在etc目录下pam.d目录下&#xff0c;存在system-auth文件 先将文件备份下&#xff0c;然后在system-auth中插入下面行 password requisite pam_pwquality.so try_first_pass local_users_only retry3 authtok_type minlen8 lcredit-1 ucredit-1 dcredit-1 ocredi…

OpenCV 4.0+Python机器学习与计算机视觉实战

&#x1f482; 个人网站:【办公神器】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言第一部分&…

Shell脚本学习-变量子串

变量子串&#xff1a; man bash&#xff0c;然后搜索&#xff1a;Parameter Expansion。 参数拓展 $字符引进、提出了参数拓展、命令替换和数字替换。变量名或标识被大括号包围才能够被拓展。 我们可以记住一个表&#xff1a; 序号表达式说明1${parameter}返回变量$paramete…

东南大学齿轮箱故障诊断(Python代码,CNN结合LSTM模型)

运行代码要求&#xff1a; 代码运行环境要求&#xff1a;Keras版本>2.4.0&#xff0c;python版本>3.6.0 1.东南大学采集数据平台&#xff1a; 数据 该数据集包含2个子数据集&#xff0c;包括轴承数据和齿轮数据&#xff0c;这两个子数据集都是在传动系动力学模拟器&am…

PVS-Studio Crack,重新编译后的自动分析

PVS-Studio Crack,重新编译后的自动分析 PVS Studio执行静态代码分析并生成报告&#xff0c;帮助程序员查找和修复错误。PVS Studio执行广泛的代码检查&#xff0c;搜索印刷错误和复制粘贴错误也很有用。此类错误的示例&#xff1a;V501、V517、V522、V523、V3001。 静态分析的…

常常会用到的截取字符串substr()、substring()、slice()方法详解

常常会用到的截取字符串substr()、substring()、slice()方法详解 slice() 定义&#xff1a;接受一个或者两个参数&#xff0c;第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置&#xff08;不包括结束位置的那个字符&#xff09;&#xff0c;如果没有传递…

Linux用户权限问题详解

Linux用户权限问题详解 【一】Linux权限的概念&#xff08;1&#xff09;用户类型&#xff08;2&#xff09;如何切换用户&#xff08;3&#xff09;用户相关的一些命令 【二】Linux文件权限管理&#xff08;1&#xff09;文件访问者的分类&#xff08;2&#xff09;文件类型和…

激光点云数据如何在客户端进行管理、查看及分享?

四维轻云是一款地理空间数据在线管理平台&#xff0c;具有地理空间数据的在线管理、查看及分享等功能。在四维轻云平台中&#xff0c;用户可以不受时间地点限制&#xff0c;随时随地上传数字高程模型、激光点云、倾斜摄影模型、正射影像等地理空间数据。 现在&#xff0c;小编…

算法(3)

喝汽水 两瓶即可换一瓶 import java.util.*; public class Main {public static void main(String[] args) {//剩2个空瓶子时&#xff0c;可以先找老板借一瓶汽水&#xff0c;喝掉这瓶满的&#xff0c;喝完以后用3个空瓶子换一瓶满的还给老板。 //也就是说2个空瓶子即可换一瓶汽…

vue如何设置网站标题和logo图标

目录 1、在根目录找到项目index.html文件 2、在index.html 的 title标签中修改名称为自己设计的标题 3、在index.html 的 title标签下的link标签中引入图标 ①格式为&#xff1a; ②注意&#xff1a; 1、在根目录找到项目index.html文件 2、在index.html 的 title标签中修改…

Visual Assist X Crack

Visual Assist X Crack Visual Assist X通过Visual Studio中的关键新功能和对现有功能的改进&#xff0c;大大缩短了应用程序开发时间&#xff0c;使您能够&#xff1a;Visual Assist提高了自动化程度&#xff0c;简化了导航&#xff0c;并在开发过程中显示重要信息。这些功能已…

WebDAV之π-Disk派盘+ WinSCP

WinSCP是一个免费的开源文件传输应用程序&#xff0c;它使用文件传输协议&#xff0c;安全外壳文件传输协议和安全复制协议来进行纯文件或安全文件传输。该应用程序旨在与Windows一起使用&#xff0c;并支持常见的Windows桌面功能&#xff0c;例如拖放文件&#xff0c;跳转列表…

Python web实战 | 使用 Django 搭建 Web 应用程序 【干货】

概要 从社交媒体到在线购物&#xff0c;从在线银行到在线医疗&#xff0c;Web 应用程序为人们提供了方便快捷的服务。Web 应用程序已经成为了人们日常生活中不可或缺的一部分。搭建一个高效、稳定、易用的 Web 应用程序并不是一件容易的事情。本文将介绍如何使用 Django 快速搭…

2_Apollo4BlueLite中断控制器NVIC

1.概述 Apollo4BlueLite 的中断控制器是采用 ARM Cortex-M4 内核&#xff0c;并集成了 NVIC&#xff08;Nested Vectored Interrupt Controller&#xff0c;嵌套向量中断控制器&#xff09;作为其中断控制器。 NVIC 是 ARM Cortex-M 系列处理器中常用的中断控制器&#xff0c…

Linux centos7.x系统将/home磁盘分配给/

1.解除挂载并删除/home卷 umount /home如果出现以下报错 &#xff1a; 可以使用以下命令查看哪些进程在占用 fuser -mv /home杀死这些进程就行 kill -9 进程号然后再执行umount /home就可以成功了 &#xff0c; 同时执行以下命令把逻辑卷删除了 lvremove /dev/centos/home…

腾讯云标准型S6/SA3/SR1/S5/SA2服务器CPU处理器大全

腾讯云服务器CVM标准型CPU处理器大全&#xff0c;包括标准型S6、SA3、SR1、S5、S5se、SA2、S4、SN3ne、S3、SA1、S2ne实例CPU处理器型号大全&#xff0c;标准型S6云服务器CPU采用Intel Ice Lake(2.7GHz/3.3GHz)&#xff0c;标准型S5采用Intel Xeon Cascade Lake 8255C/Intel Xe…

Linux C tcp/ip

服务端代码&#xff1a; #include <stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<string.h> #include<netinet/in.h> #include<arpa/inet.h> #include <unistd.h>/* socket bind listen accept send/receive *…

SpringBoot Redis 多数据源集成支持哨兵模式和Cluster集群模式

Redis 从入门到精通【应用篇】之SpringBoot Redis 多数据源集成支持哨兵模式Cluster集群模式、单机模式 文章目录 Redis 从入门到精通【应用篇】之SpringBoot Redis 多数据源集成支持哨兵模式Cluster集群模式、单机模式0.前言说明项目结构Pom 依赖 1. 配置1.1 通用配置&#xf…

二、SQL-6.DCL-1).用户管理

一、DCL介绍 Data Control Language 数据控制语言 用来管理数据库 用户、控制数据库的 访问权限。 二、语法 1、管理用户 管理用户在系统数据库mysql中的user表中创建、删除一个用户&#xff0c;需要Host&#xff08;主机名&#xff09;和User&#xff08;用户名&#xff0…