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

news/2024/5/12 23:38:09/文章来源:https://blog.csdn.net/u014388408/article/details/131906998

目录

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.luyixian.cn/news_show_335854.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue实现柱状图横向自动滚动

Vue实现柱状图横向自动滚动 1. 前言2. 代码3、实现效果图 1. 前言 原理&#xff1a;通过定时器修改Echarts的配置&#xff08;options&#xff09;达到我们想要的效果。 此外&#xff0c;我们还需要了解Echarts中dataZoom这个组件&#xff0c;这个组件用于&#xff1a;用于区域…

探究Spring Bean的六种作用域:了解适用场景和使用方式

这里写目录标题 单例&#xff08;Singleton&#xff09;作用域&#xff1a;原型&#xff08;Prototype&#xff09;作用域&#xff1a;请求&#xff08;Request&#xff09;作用域&#xff1a;会话&#xff08;Session&#xff09;作用域&#xff1a;全局&#xff08;applicati…

MySQL绿色安装和配置

1、 从地址http://dev.mysql.com/downloads/mysql/中选择windows的版本下载。 2、 mysql各个版本的简介 &#xff08;1&#xff09; MySQL Community Server 社区版本&#xff0c;开源免费&#xff0c;但不提供官方技术支持。 &#xff08;2&#xff09; MySQL Enterprise Ed…

文件上传--题目

之前有在技能树中学过文件上传&#xff0c;正好借这次进行一个整合&#xff1a; 技能树中所包含的题目类型有 无限制绕过 1.上传一句话木马 2.链接中国蚁剑 前端验证 1.会发现这个网站不让提交php&#xff0c;改后缀为jpg格式&#xff0c;再用burp抓包 2.在用中国蚁剑连接 .…

[start] m40 test

software & update 470 drive version # cd /etc/apt # mv sources.list sources.list.bak # sudo vi /etc/apt/sources.list # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ ja…

Linux搭建Promtail + Loki + Grafana 轻量日志监控系统

一、简介 日志监控告警系统&#xff0c;较为主流的是ELK&#xff08;Elasticsearch 、 Logstash和Kibana核心套件构成&#xff09;&#xff0c;虽然优点是功能丰富&#xff0c;允许复杂的操作。但是&#xff0c;这些方案往往规模复杂&#xff0c;资源占用高&#xff0c;操作苦…

【代码随想录day20】验证二叉搜索树

题目 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 思路 最开始想简单…

htmlCSS-----定位

目录 前言 定位 分类和取值 定位的取值 1.相对定位 2.绝对位置 元素居中操作 3.固定定位 前言 今天我们来学习html&CSS中的元素的定位&#xff0c;通过元素的定位我们可以去更好的将盒子放到我们想要的位置&#xff0c;下面就一起来看看吧&#xff01; 定位 定位posi…

安全技术-大数据平台安全防护技术

一、大数据基本概念及背景 1.1大数据发展的背景-数据爆炸 伴随着互联⽹、物联⽹、电⼦商务、社交媒体、现代物流、⽹络⾦融等⾏业的发展&#xff0c;全球数据总量正呈⼏何级数增长&#xff0c;过去⼏年时间产⽣的数据总量超过了⼈类历史上的数据总和&#xff0c;预计2020年全…

C语言每日一题:5.至少是其他数字的两倍+两个数组的交集。

第一题&#xff1a;至少是两倍其他数字的最大数 第一题&#xff1a; 思路一&#xff1a; 1.需要我们返回最大数值的下标&#xff0c;所以先循环遍历我们的这个数组记录一下最大的数值和下标位置。 2.使用qsort排序&#xff08;总是存在唯一的最大整数&#xff09; 3所以排序之…

tinkerCAD案例:11.制作齿轮

tinkerCAD案例&#xff1a;11.制作齿轮 制作齿轮 Add a cylinder to be the main part of the gear. 添加一个圆柱体作为齿轮的主要部分。 说明 Click and drag a cylinder onto the Workplane. 单击圆柱体并将其拖动到工作平面上。 Change the cylinder dimensions to 35mm …

汽车交流充电桩控制主板的电路设计

汽车充电桩控制主板的电路设计 你是否曾经遇到过汽车没油的问题?但是&#xff0c;随着电动汽车的普及&#xff0c;充电问题也变得越来越重要。而汽车充电桩控制板电路设计则是解决这一问题的关键。 汽车充电桩控制板电路设计包括硬件电路设计、软件电路设计和安全性设计。硬件…

四章:Constrained-CNN losses for weakly supervised segmentation——弱监督分割的约束CNN损失函数

0.摘要 基于部分标记图像或图像标签的弱监督学习目前在CNN分割中引起了极大关注&#xff0c;因为它可以减轻对完整和繁琐的像素/体素注释的需求。通过对网络输出施加高阶&#xff08;全局&#xff09;不等式约束&#xff08;例如&#xff0c;约束目标区域的大小&#xff09;&am…

实战项目——基于多设计模式下的同步异步日志系统

系列文章目录 1.项目介绍 2.相关技术补充 3.日志系统框架 4.代码设计 5.功能测试 6.性能测试 文章目录 目录 系列文章目录 1.项目介绍 2.相关技术补充 3.日志系统框架 4.代码设计 5.功能测试 6.性能测试 文章目录 前言 一、项目介绍 二、开发环境 三、核心技…

利用Stable diffusion Ai 制作艺术二维码超详细参数和教程

大家有没有发现最近这段时间网上出现了各种各样的AI艺术二维码&#xff0c;这种二维码的出现&#xff0c;简直是对二维码的“颠覆式创新”&#xff0c;直接把传统的二维码提升了一个维度&#xff01;作为设计师的我们怎么可以不会呢&#xff1f; 今天就教大家怎么制作这种超有艺…

【数据动态填充到element表格;将带有标签的数据展示为文本格式】

一&#xff1a;数据动态填充到element表格&#xff1b; 二&#xff1a;将带有标签的数据展示为文本格式&#xff1b; 1、 <el-row><el-col :span"24"><el-tabs type"border-card"><el-tab-pane label"返回值"><el-…

嵌入式:QT Day2

一、继续完善登录框&#xff0c;当登陆成功时&#xff0c;关闭登陆页面&#xff0c;跳转到新的界面中 源码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> //用于打印输出 #include <QIcon> …

git拉取项目报错:fatal: remote error: Service not enabled

一般是git地址错误&#xff0c;如果是原本就有的项目&#xff0c;看看是不是代码库移动到其他地方了&#xff0c;这个库已经被删除了

Centos yum install出现Error: Unable to find a match: epel-release的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【Leetcode】54.螺旋矩阵

一、题目 1、题目描述 给你一个 m m m 行 n n n 列的矩阵 matrix,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例1: 输入:matrix =