我开发私人 npm 包。 我总是使用
npm publish
命令将其发布到注册表,根据文档:
[--tag ] 使用给定标签注册已发布的包,以便
将安装此版本。默认情况下,npm install @
更新并npm publish
安装npm install
标签。有关标签的详细信息,请参阅latest
。npm-dist-tag
始终将最新标签添加到包中。 我什至通过使用双重检查它是否属实
npm dist-tag ls
命令。但我得到了预期的答案:latest: 1.10.1
问题是,当我在 package.json 中使用此依赖项时,如下所示:
"@prefix/packageName": "latest",
当我使用
yarn install
时,它会下载1.9.0版本而不是最新的1.10.1。
发生什么事了?怎么解决呢?是什么原因造成的?
通过运行
yarn update
我们可以获得最新版本的包。但是运行 update 命令会带来风险,即它会更新 package.json
中列出的所有其他包。
要停止更新不需要的包,我们可以删除包版本中的
^
前缀,以告诉yarn保持该包的确切版本不变。
"dependencies": {
"@scope/package-name": "^0.1.9", --> with ^ so it'll fetch the latest.
"axios": "0.20.0" --> without ^ so it'll not get the latest.
}
可能有比这更好的解决方案,这是我迄今为止找到的解决方案。
npm install
或yarn install
的正常行为不仅仅是安装最新版本。
他们会验证您的
node
和 npm
版本,还会验证您是否与之前安装的另一个库存在兼容性问题,并且需要最旧的版本。
因此,您需要做的是验证您的环境是否支持您期望的
latest
,以及任何需要最旧版本的先前库是否会阻止您升级。
希望这对您有帮助!