Npm;如果package.json仅指定确切版本,package-lock.json是否冗余?
我与npm的Npm;如果package.json仅指定确切版本,package-lock.json是否冗余?,npm,versioning,Npm,Versioning,我与npm的package.json和package lock.json二元性作斗争。我相信这个问题可以提供关于这些文件如何相互关联的见解: 如果我们定义了一个package.json文件,该文件只指定所有依赖项的确切版本,例如: 并且决不使用任何模棱两可的版本,例如: ... "dependencies": { "dep1": "^1.2.3", "dep2": "4.5.*"
package.json
和package lock.json
二元性作斗争。我相信这个问题可以提供关于这些文件如何相互关联的见解:
如果我们定义了一个package.json
文件,该文件只指定所有依赖项的确切版本,例如:
并且决不使用任何模棱两可的版本,例如:
...
"dependencies": {
"dep1": "^1.2.3",
"dep2": "4.5.*"
}
...
那么是否也有理由维护
包锁.json
文件?(如果是,原因是什么?即使您锁定了依赖项的特定版本,包锁.json
也不是多余的
package lock.json
保护您不受可传递依赖关系的影响
例如:
=X
。因此,当C依赖项被解析时,每次它都可以是大于X的任何版本。package lock.json
将保证情况并非如此
...
"dependencies": {
"dep1": "^1.2.3",
"dep2": "4.5.*"
}
...