一文彻底看懂package.json中的各种dependencies
条评论关于package.json中的各种dependencies的详细解释,可以直接参考这篇文章。
这里只做一个最终结论的摘录。
依赖类型 | 定义在项目中 | 定义在依赖中 | 一句话总结 | 举例 |
---|---|---|---|---|
dependencies | 会被安装 | 会被安装 | 定义包运行所需要的依赖包 | 某前端项目使用 react 进行开发,需要将 react 添加到 dependencies 中 |
devDependencies | 会被安装 | 不会被安装 | 定义包在开发时所需要的依赖包 | antd 使用了 @testing-library/react 进行测试,需要将 @testing-library/react 添加到 devDependencies 中 |
peerDependencies | 不会被安装 | 不会被安装,但是如果指向的依赖没有被安装或不符合时会有警告(peerDependenciesMeta 会影响该行为) | 定义该包运行所需要的依赖环境,一般和 devDependencies 一起使用 | antd 是一个 react 组件库,为了不和使用它的项目中的 react 版本定义造成冲突,需要将支持的 react 版本添加到 peerDependencies 中 |
optionalDependencies | 会被安装,但是安装报错不会影响 | 会被安装,但是安装报错不会影响 | optionalDependencies 用于定义对包运行不会造成影响的依赖包 | 一个包在使用 A 包进行了某些操作,但是如果 A 包不在的话,可以使用别的 API 达到同样的效果,可以将 A 包添加到 optionalDependencies 中 |
另外记录下版本号的格式规定:固定版本
:如4.0.3~
:如~4.0.3,表示安装 4.0.x 的最新版本,也就是说安装时不会改变主版本号和次版本号^
:如^17.0.2,表示安装 17.x.x 的最新版本,也就是说安装时不会改变主版本号latest
:安装最新版本