2017-02-16 192 views
0

这更多的是一个概念性问题。Package.JSON文件依赖关系

在Package.JSON文件中我们有devDependencies和Dependencies。我明白每一个是什么。但是,这些是否仅仅是为了让其他开发者更清楚地知道当我们分发我们的文件时开发依赖和生产依赖是什么?如果我们不分发我们的文件,如果我们把devDependencies放在依赖项部分中,它会有所作为吗?在我看来,它不应该是因为package.json仅用于npm安装,而且当我们通过诸如webpack之类的捆绑程序运行我们的应用程序时,它只会捆绑部署所需的模块。事实上,如果我们不从理论上分发我们的文件,我们甚至需要package.JSON文件(尽管我明白了为什么我们需要一个文件,以便我们可以轻松地将文件从一个地方移动到另一个地方,并且只需在另一端重新安装模块)。

+4

[npm package.json文件中依赖关系,devDependencies和peerDependencies之间有什么区别?](http://stackoverflow.com/questions/18875674/whats-the-difference-between-dependencies-devdependencies-and -Perdependencies) –

+0

**不,它不是重复的**,因为如果你没有发布并询问关于实用视角的差异,那么第二个问题会问有没有区别。审稿人:请仔细阅读问题。 – revelt

回答

0

我认为这是一个独特的问题,因为它不仅要求开发者和正常开发者之间有什么区别,而且理论上讲,如果你不发布,两者是否有区别。据称duplicate answer并没有提到这一点,但对于人们对npm的正确理解很重要。


回到你的问题:

但这些替代单纯为了更清楚给其他开发什么,当我们发布我们的文件dev的依赖和生产依赖关系?

编号NPM的行为将有所不同,这取决于它是否为dev或“正常”dep。请参阅more关于涉嫌重复的接受答案。例如,当您安装发布的软件包时,除非您通过标志明确请求,否则安装不会安装开发依赖关系。

如果我们不分配我们的文件,如果我们把devDependencies放在依赖项部分,它会有所作为吗?

只有当您不发布功能时才有区别功能。当然,除了做法不好,难以维护等等。