Javascript 如何控制所有开发人员使用相同的库版本?

Javascript 如何控制所有开发人员使用相同的库版本?,javascript,angular,git,github,npm,Javascript,Angular,Git,Github,Npm,我们在Angular中使用VisualStudio代码开发,使用GitHub作为代码库。这很好,但最近我们遇到了一个问题,因为某个开发人员使用了某个库的不同版本。由于使用npm安装不需要指定它安装的最新版本,因此他最终得到了与其他开发人员不同的版本 解决这个问题的一种方法是将所有库都放在GitHub中,但这似乎是压倒性的。让所有开发人员使用相同版本的javascript库的最佳做法是什么?确保package.json指定依赖项的版本,并提交此文件 { "dependencies": {

我们在Angular中使用VisualStudio代码开发,使用GitHub作为代码库。这很好,但最近我们遇到了一个问题,因为某个开发人员使用了某个库的不同版本。由于使用npm安装不需要指定它安装的最新版本,因此他最终得到了与其他开发人员不同的版本

解决这个问题的一种方法是将所有库都放在GitHub中,但这似乎是压倒性的。让所有开发人员使用相同版本的javascript库的最佳做法是什么?

确保package.json指定依赖项的版本,并提交此文件

{
  "dependencies": {
    "foo": "1.2.3"  exact version
    "bar": ">1.2.3" greater than 1.2.3
    "baz": "^1.2.3" compatible with 1.2.3, ie from 1.2.3 until below 2.0.0
  }
}
package.json定义了可以安装的版本范围,但package-lock.json定义了安装的所有包的确切版本all=包括依赖项的依赖项。你必须提交这个文件


另外,更喜欢npm clean install而不是npm install,因为如果node modules文件夹中安装的包与包锁中定义的包不匹配,则会引发错误。

我想我可能会收到错误信息,但这不是包锁的作用吗?该文件是否在repo中提交?1在package.json中指定Angular的固定版本,例如8.0.0或2如果您想坚持使用SemVer规范更新次要版本和修补程序版本,例如^8.0.0,请提交package-lock.json文件。这是一个好问题。您可以在package.json中使用@来要求确切的版本。是的,我使用@miqh进行聚合,您需要package-lock.json,这样,当一个成员使用npm安装时。库应该安装正确的版本。我更喜欢使用package-lock.json,这样每个人都有相同的库版本,即使是很小的更改也会有所不同。