有没有办法自动将package.json的最新或星号(*)标记更改为特定版本?

Is there any way to automatic change package.json's latest or asterisk(*) mark to specific version?

我使用 npm Node Packaged Modules 来管理项目库, 但我注意到无条件 latest 更新版本让我很痛苦。 (太多未满足的依赖项错误..)

所以我试图找到将所有最新版本更改为我本地当前版本。我发现 --save 标志使某些库成为特定版本,但不是全部。请问有什么好的方法可以解决这个问题吗?

根据NPM documentation,您可以使用"semver"字符串来指定如何匹配特定版本,或者该版本号如何更改,以控制您的依赖项,如下所示:

version Must match version exactly
>version Must be greater than version
>=version etc
<version
<=version
~version "Approximately equivalent to version" See semver(7)
^version "Compatible with version" See semver(7)
1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0

node-semver 文档也值得一读,它更详细地定义了如何指定和控制匹配的依赖项的版本。

要研究的另一个命令是 npm shrinkwrap - 这会准备一个 npm-shrinkwrap.json 文件(如果存在,npm install 将使用它而不是 package.json)其中记录了特定版本,这意味着未来 npm install 应该始终提供这些特定版本。有关详细信息,请参阅 NPM documentation for shrinkwrap