typescript - 如何将 npm 包配置为自动更新
问题描述
我做了这个包:https ://www.npmjs.com/package/nestjs-notifications
当我运行npm install nestjs-notifications --save
它时,它会安装好并添加到注册表中,但会将其保存为:
"nestjs-notifications": "0.0.10"
我该如何配置它,以便它将语义版本安装为:
"nestjs-notifications": "^0.0.10".
目前我无法自动获取新版本,我必须手动更改 package.json 中的版本。
编辑:我的相关配置设置如下(基本上它们是默认设置)。所以它应该用插入符号保存:
save = true
save-bundle = false
save-dev = false
save-exact = false
save-optional = false
save-prefix = "^"
save-prod = false
...
解决方案
您遇到的是预期的行为。使用 semver 安装任何 pkg0.0.x
都不会在package.json^
中获得默认的插入符号 ( ) 前缀,也不会更新您的包。
在插入符号范围的 npm 文档中,它指出:
“允许不修改元组中最左边的非零数字的更改
[major, minor, patch]
。换句话说,这允许版本1.0.0
及更高版本的补丁和次要更新,版本的补丁更新,版本0.X >=0.1.0
的不更新0.0.X
。”
注意摘录(上面)中的粗体强调是我添加的。
基本上,一旦您将包的 semver 提高到>=0.1.0
只有这样,您才会开始获得所需的行为。
显示插入符号 ( ^
) 何时添加和未添加到 package.json 的演示:
安装一个版本的软件包,即
<0.1.0
. 出于演示目的,我们将通过运行以下命令来安装eslint版本:0.0.7
npm i eslint@0.0.7 --save
前面的命令将以下内容添加到package.json:
"eslint": "0.0.7"
注意
^
不包括插入符号 ( )。eslint
现在通过运行以下命令进行卸载:npm un eslint --save
接下来安装第一个可用的版本,
eslint
即>=0.1.0
运行以下命令:run npm i eslint@0.1.0 --save
这次前面的命令将以下内容添加到 package.json::
"eslint": "^0.1.0"
注意插入符号 (
^
) 已包含在内。
推荐阅读
- heroku - 页面出现 500 错误,但 heroku 日志显示 200
- laravel - Apache - 选项指令禁止服务器生成的目录索引
- python - 导入函数/类时,类成员会丢失
- apache - 如何让 apache 服务器访问已安装的文件夹?
- c - 有没有更好的方法来一次退出所有递归函数,而不是一个一个地退出?
- ionic-framework - *ng 中的 ionic-selectable 不更新当前行字段值,否则最后一行项目值
- typescript - 2021 年为 npm 浏览器库和 TypeScript 配置 babel 的最佳方式?
- node.js - 我无法在 Windows10 上使用 node-v14.16.0-x64 环境和 VSCodeUserSetup-x64-1.54.3 安装 EnMap
- php - 如何在 Codeigniter 4 中将数据插入到 2 个表中
- python - ValueError:无法将字符串转换为浮点数:Python 3D 图中的“2019-01-01 00:00:00”