在 package.json 中使用 * 而不是版本号时如何始终获取最新版本? [复制]
Posted
技术标签:
【中文标题】在 package.json 中使用 * 而不是版本号时如何始终获取最新版本? [复制]【英文标题】:How to always get newest version when using * instead of version number in package.json? [duplicate] 【发布时间】:2018-05-03 16:13:46 【问题描述】:我对 package.json 有一个私有依赖,它应该始终安装最新版本。所以不是版本,而是*
。
"dependencies":
"@user/package": "*"
在 npmjs 中更新软件包后,如果我输入确切的版本号而不是 *
,它仍然会安装带有 npm i
的旧版本 - 它会安装一个新版本,就像一天前一样发布。
一分钟前在 npmjs 更新版本时我遇到了类似的问题,但现在 npmjs 缓存应该已过期并使用新版本进行更新,不是吗?
如何避免此类问题并始终使用*
获取所有内容的最新版本?
我试过npm cache verify
npm cache clean --force
。没有运气。
【问题讨论】:
@CodeCaster 感谢您的链接,可能是的。即使在 node_modules 不存在的初始安装期间,我也必须使用 npm update 来获取更新。我现在无法确认,因为我已经在每个包上使用了 npm i 来获取最新版本。 【参考方案1】:您可以尝试使用 packagename@latest 关键字进行安装,但据我所知,您只能在命令行界面中通过 npm install --save 使用此关键字。
npm install --save mypackage@latest
在这里阅读文档后https://docs.npmjs.com/files/package.json 我发现你可以在 package.json 文件中写“最新”而不是任何版本号。这应该可以解决问题。
【讨论】:
谢谢,但是已经安装了软件包并且其中有很多。我正在寻找一种解决方案,每次我在我的开发机器上打开一个项目时,它可以让我有最新版本的 w/onpm i
命令用于 ~15 个包。通过 npm docs *
而不是 version 应该这样做,但它没有。
好的,编辑了我的答案,您显然可以使用“最新”作为版本号。刚刚发现。
Kauyn *
是有效的版本表达式,问题不是关于它,而是关于 npm install
命令,我必须使用 npm update
由 CodeCaster 回答,感谢支持【参考方案2】:
即使在初始安装依赖项时,也需要使用 npm update
而不是 npm install
。
这个问题更多地谈论npm install
vs npm update
npm install vs. update - what's the difference?
结论:唯一的大区别是已经安装了一个 具有模糊版本控制的模块...
被 npm install 忽略 由 npm update 更新
感谢 CodeCaster 提供正确命令的链接。但是:
问题仍然存在。大多数时候,它每次都有效。但。当 npm 没有解析到最新版本时,刚刚进行了另一个更新。现在将值从*
转换为数字。对我来说似乎是一个错误。
【讨论】:
确实,我尝试使用 *,但当我使用npm install
时,它并没有按预期工作。发布内部组件确实对版本控制很痛苦。除了将 bat 文件放在根目录上执行 npm install @latest
之外,我还没有看到更精简的方法。以上是关于在 package.json 中使用 * 而不是版本号时如何始终获取最新版本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 package.json 中使用“*”而不是某个版本的“~”、“^”库是一个好习惯吗?
为啥人们将 typescript 的类型作为依赖项存储在 package.json(而不是 devDep)中? [复制]
如何将 package.json 导入 Typescript 文件而不将其包含在编译输出中?
在 node package.json 中,使用额外参数从另一个脚本调用脚本,在这种情况下添加 mocha watcher