Javascript 使用^作为默认保存前缀的好处

Javascript 使用^作为默认保存前缀的好处,javascript,npm,Javascript,Npm,在我看来,在默认情况下使用扬抑(^)进行npm安装,实际上并不实用 如果所有软件包在npm update上升级到最新版本而不另行通知,则在许多情况下可能导致整个产品彻底销毁 我理解补丁版本(~)的默认更新,因为根据semver的定义,它们是重要的bug/安全修复 因此,在npm安装包名上默认使用扬抑有什么好处?根据定义,“次要”更新不应损害向后兼容性。 我想这就是为什么添加“^”前缀主要被视为一种好处,您只需获得一些修复、次要功能等等,而无需担心 我曾经遇到过这样的情况,即前缀导致了一些问题,但

在我看来,在默认情况下使用扬抑(^)进行
npm安装
,实际上并不实用

如果所有软件包在
npm update
上升级到最新版本而不另行通知,则在许多情况下可能导致整个产品彻底销毁

我理解补丁版本(~)的默认更新,因为根据semver的定义,它们是重要的bug/安全修复

因此,在
npm安装包名
上默认使用扬抑有什么好处?

根据定义,“次要”更新不应损害向后兼容性。 我想这就是为什么添加“^”前缀主要被视为一种好处,您只需获得一些修复、次要功能等等,而无需担心

我曾经遇到过这样的情况,即前缀导致了一些问题,但它们大多与生成后.lock文件中的冲突有关,等等。根据定义,“次要”更新不应损害向后兼容性。 我想这就是为什么添加“^”前缀主要被视为一种好处,您只需获得一些修复、次要功能等等,而无需担心


我遇到过这样的情况,即前缀导致了一些问题,但它们主要与生成后.lock文件中的冲突有关,等等,根据semver定义,次要版本应该而不是包含破坏性更改。只有主要版本才应该包含突破性的更改

您可以使用以下定义:

包装的主要断裂记录
次要-新功能/较大更改-不中断

补丁-错误修复/较小的更改-根据semver定义,非中断的次要版本应不包含中断的更改。只有主要版本才应该包含突破性的更改

您可以使用以下定义:

包装的主要断裂记录
次要-新功能/较大更改-不中断
修补程序-错误修复/较小更改-非中断