Angular 语义版本控制问题和npm 5或以上
您能告诉我为什么我们需要Angular 语义版本控制问题和npm 5或以上,angular,npm,version,semantic-versioning,Angular,Npm,Version,Semantic Versioning,您能告诉我为什么我们需要npm5或更高版本来避免语义版本控制问题吗?换句话说,我们如何使用package lock.json文件来避免它?如果我们在同一个项目的所有开发机器上使用相同的package.json文件,我们就不能避免这个问题吗?我在这里有点困惑。希望您能对此给出反馈。如果您的包.json文件列出如下包,则可以避免这种情况: "@angular/core": "4.2.6", "@angular/forms": "4.2.6", "@angular/http": "4.2.6", 而
npm5
或更高版本来避免语义版本控制问题吗?换句话说,我们如何使用package lock.json
文件来避免它?如果我们在同一个项目的所有开发机器上使用相同的package.json
文件,我们就不能避免这个问题吗?我在这里有点困惑。希望您能对此给出反馈。如果您的包.json
文件列出如下包,则可以避免这种情况:
"@angular/core": "4.2.6",
"@angular/forms": "4.2.6",
"@angular/http": "4.2.6",
而不是
"@angular/core": "^4.2.6",
"@angular/forms": "^4.2.6",
"@angular/http": "~4.2.6",
通过从package.json中删除tilde或cap(~,^)符号,npm将在所有计算机上安装完全相同的版本。但是添加tilde或cap标志是安全的,因此您可以安装软件包的小版本更新,而无需更新文件。但有时,当包开发人员在小版本中打包一个突破性的更改时,这可能会导致问题
package lock.json
也会这样做,它会删除tilde或cap标志,并标记要安装的包的具体版本。并且在安装软件包时,将使锁定文件具有获取软件包版本信息的优先级
编辑:Youtube上的精彩解释。非常感谢您的精彩解释:)目前,我的自动生成的包锁带有以版本号为前缀的波浪号和克拉号。但是我想锁定依赖项的版本。我是否应该手动删除这些插入符号和波浪号并检查包对源countrol的锁定?这是一个很好的做法吗?@Murtuza是的,您可以这样做,但不要更新package lock.json
文件。更新package.json
文件,并自动生成package lock.json
文件。