npm默认依赖特性

npm默认依赖特性,npm,dependency-management,Npm,Dependency Management,在package.json中,如果指定 "react": "~16.1.1" "react": "^16.1.1" 这允许NPM仅更改修补程序版本,即它可以使用版本16.1.2,但不会使用版本16.2.X 类似地,如果我指定一个依赖项,如 "react": "~16.1.1" "react": "^16.1.1" 这允许NPM仅更改次要版本(中间编号) 但是如果依赖版本前面没有任何字符,例如 "react": "16.1.1" 这是否意味着只能使用版本16.1.1?通过在包.json中

package.json
中,如果指定

"react": "~16.1.1"
"react": "^16.1.1"
这允许NPM仅更改修补程序版本,即它可以使用版本16.1.2,但不会使用版本16.2.X

类似地,如果我指定一个依赖项,如

"react": "~16.1.1"
"react": "^16.1.1"
这允许NPM仅更改次要版本(中间编号)

但是如果依赖版本前面没有任何字符,例如

"react": "16.1.1"
这是否意味着只能使用版本16.1.1?

通过在
包.json中“固定”您的项目依赖项(即在不使用或范围说明符的情况下指定),将导致每次安装“类似”版本

例如,<代码>“react”:“16.1.1”
包中指定。json
,这将导致每次运行
npm install
时安装
react
16.1.1

但是,(请注意,我强调了“相似”一词),这并不意味着通过“固定”,您将获得上次安装软件包时构成
react
软件包版本
16.1.1
的所有“完全相同”的文件。其原因是其utillize中指定的
react
依赖项使用了插入符号和波浪号范围说明符的组合。因此,这些依赖项的版本可能会发生更改。类似地,这些依赖关系的依赖关系等(又名:依赖关系树)也会发生变化

签出和/或如果您想要为了发布目的真正锁定依赖项版本树