向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月前
|
前端开发 小程序 API
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
|
4月前
|
JavaScript
Nodejs 第七章(发布npm包)
Nodejs 第七章(发布npm包)
28 0
|
3月前
|
资源调度
#发布npm包遇到错误,因为用了淘宝镜像地址的原因的解决方法-403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.cou
#发布npm包遇到错误,因为用了淘宝镜像地址的原因的解决方法-403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.cou
166 0
message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
|
1月前
|
供应链 JavaScript Shell
供应链投毒预警 | 恶意NPM包利用Windows反向shell后门攻击开发者
本周(2024年02月19号),悬镜供应链安全情报中心在NPM官方仓库(https://npmjs.com)中发现多起NPM组件包投毒事件。攻击者利用包名错误拼写方式 (typo-squatting)在NPM仓库中连续发布9个不同版本的恶意包,试图通过仿冒合法组件(ts-patch-mongoose)来攻击潜在的NodeJS开发者。
33 2
|
2月前
|
JavaScript 前端开发 API
npm 包管理工具
npm 包管理工具
48 0
|
3月前
|
前端开发 开发工具 git
面试官:你之前的工作发布过npm包吗?
面试官:你之前的工作发布过npm包吗?
|
4月前
|
前端开发 开发者
NPM包脚手架:开启前端开发新纪元
NPM包脚手架:开启前端开发新纪元