npm 的 package.json 包括 5 种 dependencies:
dependencies
应用能够正常运行所依赖的包。这种 dependencies 是最常见的,用户在使用 npm install 安装你的包时会自动安装这些依赖。
devDependencies
开发应用时所依赖的工具包。通常是一些开发、测试、打包工具,应用正常运行并不依赖于这些包,用户在使用 npm install 安装你的包时也不会安装这些依赖。
peerDependencies
应用运行依赖的宿主包。最典型的就是插件,例如各种 jQuery 插件,这些插件本身不包含 jQeury,需要外部提供。用户使用 npm 1/2 时会自动安装这种依赖,npm 3 不会自动安装,会提示用户安装。
bundledDependencies:
发布包时需要打包的依赖。
optionalDependencies
可选的依赖包。此种依赖不是程序运行所必须的,但是安装后可能会有新功能,例如一个图片解码库,安装了 optionalDependencies 后会支持更多的格式。
从以上的定义可以看出,dependencies 是程序运行依赖,devDependencies 一般是一些开发工具,peerDependencies 一般用于插件。