这更像是一个概念性问题。
在Package.JSON文件中,我们有devDependencies和Dependencies。我明白每个人的用途。但这些是否只是为了让其他开发人员更清楚我们分发文件时的dev依赖关系和生产依赖关系?如果我们不分发我们的文件,那么如果我们将devDependencies放在依赖项部分中会有所不同吗?在我看来它不应该因为package.json只用于npm安装,当我们通过webpack等捆绑器运行我们的应用程序时,它只会捆绑部署所需的模块。事实上,如果我们不在理论上分发我们的文件,我们甚至需要一个package.JSON文件(虽然我明白为什么我们想要一个,以便我们可以轻松地将文件从一个地方移动到另一个地方,并在另一端重新安装模块)。
答案 0 :(得分:0)
我认为这是一个独特的问题,因为它不仅要求dev和普通deps之间有什么区别,但理论上,如果你不发布,两者之间是否存在差异。据称duplicate answer没有谈到这一点,但对于人们对npm的正确理解非常重要。
回到你的问题:
但这些是否只是为了让其他开发人员更清楚我们分发文件时dev依赖项和生产依赖项是什么?
没有。 NPM的行为会有所不同,具体取决于dev
或"正常" DEP的保护。关于涉嫌重复的已接受答案,请参阅more。例如,当您安装已发布的软件包时,除非您通过标志显式请求,否则安装不会安装dev依赖项。
如果我们没有分发我们的文件,那么如果我们将devDependencies放在依赖项部分中它会有所不同吗?
只有在您不发布的情况下才能明确区别功能。当然,这也是一种不好的做法,难以维护等等。