可以包含以下依赖类型:

大多数情况下只会用到 dependenciesdevDependencies,但这些类型都很重要。

dependencies

这是所谓的常规依赖,确切地说,是代码运行时所需要的(比如 React 和 immutableJS)。

devDependencies
peerDependencies

这是“同伴依赖”,一种特殊的依赖,在发布包的时候需要。

有这种依赖意味着安装包的用户也需要和包同样的依赖。 这对于像 这样也被人安装的、需要单一 react-dom 副本的包很有用。

optionalDependencies

这是可选依赖,意味着依赖是……可选的。这种依赖即便安装失败,Yarn也会认为整个依赖安装过程是成功的。

bundledDependencies

这是“打包依赖”,在发布包时,这个数组里的包都会被打包(Bundle)。

这种类型的依赖应该在项目内部使用,基本上和普通依赖相同。执行 yarn pack 同样会进行打包。

普通依赖通常从 npm registry 安装,这些情况下,打包依赖比普通依赖更好用:

  • 当你想使用一个不在 npm registry 里的,或者被修改过的第三方库时;
  • 当你想和你的模块一起发布一些文件时。