为什么在常规和dev依赖中声明相同的NPM包被认为是坏的?

时间:2015-09-03 02:12:15

标签: node.js npm

Dependency '...' exists in both dependencies and devDependencies明确声明package.jsondependencies中的同一模块时,NPM会触发警告消息:devDependencies。这表明NPM的开发人员认为使用NPM是一种错误的方式。

这对我来说是令人惊讶的,因为我一直认为这是一个好习惯这样做意味着我可以更改(添加/删除/更新)我的应用依赖关系"不破坏我的构建脚本等。

您是否了解这种观点背后的理性,或者您是否有可能引入问题的例子?

1 个答案:

答案 0 :(得分:3)

dependenciesdevDependencies都安装在顶层的node_modules目录中。如果你在两个部分中声明它,你可以在不同的版本(或冲突的版本范围)声明它,这样npm就不可能同时满足这两个要求。

在实践中,如果你在两个部分中声明它,npm将选择在dependencies中声明的版本,即使它更旧,因为这通常是你想要发生的。

作为必然结果:如果您将应用程序依赖项更新为会破坏构建脚本的版本,破坏您的构建脚本,并声明它两次无法帮助。