npm在I';我用插入符号

npm在I';我用插入符号,npm,module,version,Npm,Module,Version,My projects package.json dependencies: { A: "^0.0.2", B: "^0.0.1" } dependencies: { A: "^0.0.1", } 模块B package.json dependencies: { A: "^0.0.2", B: "^0.0.1" } dependencies: { A: "^0.0.1", } 当我为我的项目运行nmp install时,它会安装模块A两次。

My projects package.json

dependencies: {
    A: "^0.0.2",
    B: "^0.0.1"
}
dependencies: {
    A: "^0.0.1",
}
模块B package.json

dependencies: {
    A: "^0.0.2",
    B: "^0.0.1"
}
dependencies: {
    A: "^0.0.1",
}
当我为我的项目运行
nmp install
时,它会安装模块A两次。一次在顶层(版本0.0.2)中,一次嵌套在模块B(版本0.0.1)中:


项目/节点\模块/A这是根据设计。看到这个答案了吗

这是因为^0.0.1被认为等同于0.0.1

当包的版本以0开头时,它被视为处于开发阶段,并且语义版本控制规则不同。当版本为0.0.X时,这两个数字中的任何一个的增加都可能会有突破性的变化。你可以在这里看到规则

插入符号范围^1.2.3^0.2.5^0.0.4

允许不修改[major,minor,patch]元组中最左边的非零数字的更改。换句话说,这允许对1.0.0及以上版本进行补丁和次要更新,对0.X>=0.1.0版本进行补丁更新,对0.0.X版本不进行更新

当您增加次要版本时,您可能会看到插入符号,但它也有前面提到的特殊规则。当您增加主版本时,“正常”规则开始应用

您还可以查看以下页面,了解更多详细信息


它清楚地显示了
^0.0.3:=>=0.0.3是的,我也找到了答案,但忘了更新。我现在已经改为使用波浪号“~”,以符合我的要求。Tnx格式良好的答案!