如果你的项目是发布到npm
的一个包,
那么这个包的package.json
中的dependencies
中的依赖是会被下载下来到这个包的node_modules
文件夹中的(如果你的项目本身没有这个依赖),而devDependencies
不会。
举个例子:
我发布了一个组件A
,它有dependencies:lodash
和devDependencies:moment
。
当在某个项目中npm install
组件A时,如果
项目本身也依赖lodash
并且项目依赖的lodash版本与A组件依赖的lodash版本一致,那么项目的node_modules/A
下会有一个node_modules
,里面会有lodash
。
而 moment
,则无论如何也不会出现在你的项目中。
至于一般的项目,不管你是安装在dev还是dependencies中,安装的时候都会安装,打包的时候都会被打进去的,区分依赖只是为了让项目看起来更加清晰。
npm install --save * //会下载到node_modules目录中,会修改package.json dependencies会增加
npm install --save-dev **//会下载到node_modules目录中,会修改package.json ,devDependencies会增加
npm install **// 会下载到node_modules目录中,不会修改package.json
npm install //会默认安装两种依赖
npm install * --save //会下载到node_modules目录中,会修改package.json dependencies会增加