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

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

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


相关文章
|
1月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章介绍了npm的基础知识和常用命令,包括安装包、查看包信息、管理依赖等操作,并提供了如何删除npm安装的镜像以及如何彻底删除node_modules文件夹的具体步骤。
81 2
|
1月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章是关于npm包管理工具的学习、使用指南,包括npm概述、基础命令和如何安装webpack。
56 3
npm学习一:npm 包管理工具 学习、使用。
|
29天前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
73 0
|
2月前
|
数据安全/隐私保护
发布一个npm包
发布一个npm包
107 2
|
3月前
NPM——删除已发布的包
NPM——删除已发布的包
127 1
|
4月前
|
运维 Kubernetes Java
阿里云云效操作报错合集之npm包已经发布到了制品仓库,但流水线中拉取依赖时出现404错误,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之npm包已经发布到了制品仓库,但流水线中拉取依赖时出现404错误,该如何排查
|
3月前
|
JavaScript 前端开发 开发者
从零到一:教你如何发布自己的npm插件包
从零到一:教你如何发布自己的npm插件包
|
3月前
|
JavaScript
GitHub——自动发布NPM包
GitHub——自动发布NPM包
23 0
|
4月前
|
JavaScript 测试技术
npm发布自己的插件包
npm发布自己的插件包
|
4月前
|
JavaScript 开发工具 数据安全/隐私保护
npm包【详解】(内含npm包的开发、发布、安装、更新、搜索、卸载、查看、版本号更新规则、package.json详解等)
npm包【详解】(内含npm包的开发、发布、安装、更新、搜索、卸载、查看、版本号更新规则、package.json详解等)
106 0