在"react": "~16.1.1"
中,如果我指定依赖项,例如
"react": "^16.1.1"
这允许NPM仅更改补丁版本,即它可能使用版本16.1.2,但它不会使用版本16.2.X
同样,如果我指定依赖项,例如
"react": "16.1.1"
这允许NPM仅更改次要版本(中间数字)。
但如果我在依赖版本之前没有任何字符,例如
,该怎么办?fit()
这是否意味着只能使用版本16.1.1?
答案 0 :(得分:1)
通过“固定”您package.json
中的项目依赖项,(即指定semver没有caret或tilde范围说明符),将导致每次都安装“类似”版本。
举个例子; "react": "16.1.1"
中指定了package.json
,每次运行16.1.1
时,都会导致react
npm install
版的安装。
然而,(注意我强调单词“类似”),这并不意味着建议通过“pinning”你会得到所有< em>在上次安装软件包时构成react
软件包版本16.1.1
的“完全相同”文件。原因是其package.json
中指定的react
依赖关系使用了插入符号和波形符号范围说明符的组合。因此,这些依赖项的版本可能会发生变化。同样,这些依赖项的依赖关系等(也就是:依赖关系树)也会发生变化。
结帐npm-shrinkwrap和/或npm-package-locks,如果您想要真正锁定依赖版本树以供发布。