node项目下的package.json文件中的devDependencies和dependencies有什么区别?当我在做一个项目的时候,我下载的依赖应该放在哪里。网上的说法:把生产环境用的放在dependencies里,把开发环境用的放在devDependencies里是对的,但是有时候我们确实会觉得迷茫。问题的根源在于我们需要了解生产环境和开发环境指的是什么?比如我们使用webpack来打包我们的项目。对于webpack来说,是开发环境还是生产环境?答案是生产环境,因为我们用的是webpack插件然后再问一个问题,对于webpack插件,什么时候是它的开发环境,当然它的团队在开发它(webpack)的时候webpack项目正在开发中,它也会有自己的依赖和devDependencies。这两个类依赖在开发阶段会被下载使用。它们的区别在于,我们在使用的时候,下载安装webpack的时候,会安装webpack,同时会安装webpack中依赖的依赖,而不会安装webpack中devDependencies的依赖。知道了这些之后,我们就可以得出结论,如果项目只供我们自己使用,并且是在本地打包的时候,依赖可以放在dependencies或者devDependencies中,像我们平时开发的vue和react项目,打包的时候,我们有已经把需要的依赖放到项目中了,所以运行的时候不会出现漏依赖这种情况,所以随便放哪都行。当我们的项目需要作为别人的插件使用时,我们需要区分这两个依赖,因为如果我们把应该放在dependencies中的依赖放在devDependencies中,就是用户在安装的时候缺少依赖,而项目报错。如果反了,用户会下载不必要的依赖,对用户不友好。如果服务器是打包的,为了避免浪费服务器资源,同时为了标准化,应该单独放置。生产依赖中不要放多余的包,也不要少放。一般情况下,不涉及代码运行和打包的包不应该放在生产依赖中。
