dependencies?devDependencies?peerDependencies

之前使用的npm包中,我用到了sass包。我当时没有在packagejson中添加依赖项,而是另外install的。这就引起了我的一个思考

初步想法:

我的npm包需要使用sass,那么我应该放在dependencies中,当使用的时候会直接下载

问题所在:

但是如果我的项目已经下载了sass,那么就会导致我的整个项目下载两次sass,造成不必要的下载,而且我npm包中的sass也不可以给全局使用,仅仅服务于我的npm包

结论:在peerDependencies中添加依赖可能更好,这样提醒我在使用npm的时候提醒我下载对应依赖,并不会造成重复下载

为了确认我的想法,我查询了一些这块相关的定义

dependencies:项目依赖,整个项目的依赖,如vue element

devDependencies:开发依赖,用于开发过程的依赖,比如eslint

peerDependencies:定义了项目依赖的版本号,保护兼容性

复制代码
{
  "name": "gulp-my-plugin",
  "version": "0.0.1",
  "peerDependencies": {
    "gulp": "3.x"
  }
}

npm ERR! peerinvalid The package gulp does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer gulp-cli-config@0.1.3 wants gulp@~3.1.9
npm ERR! peerinvalid Peer gulp-cli-users@0.1.4 wants gulp@~2.3.0

在其中的阅读中我还发现了之前我有考虑不充分的问题,比如我既然需要sass,那当sass变更的时候可能会导致我的npm包无法兼容新版sass,导致错误,因此我如果在我的npm中添加,需要考虑到sass版本的问题。

参考博文:dependencies devDependencies peerDependencies三者的区别-CSDN博客

参考博文:dependencies devDependencies peerDependencies optionalDependencies区别_bundledependencies-CSDN博客

相关推荐
IT北辰几秒前
用 Python 自动解析药品规格并计算包装总容量 —— pandas + 正则实战
开发语言·python·pandas
rannn_1113 分钟前
【SQL题解】力扣高频 SQL 50题|DAY5
数据库·后端·sql·leetcode·题解
资生算法程序员_畅想家_剑魔7 分钟前
Java常见技术分享-10-装饰器模式
java·开发语言·装饰器模式
zzoood8 分钟前
【PHP】富文本编辑器图片自动追加域名
开发语言·php
+VX:Fegn08959 分钟前
计算机毕业设计|基于springboot + vue健康茶饮销售管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
林shir10 分钟前
Java基础1.4-运算符
java·开发语言
陈橘又青20 分钟前
vLLM-Ascend推理部署与性能调优深度实战指南:架构解析、环境搭建与核心配置
人工智能·后端·ai·架构·restful·数据·vllm
ChineHe24 分钟前
Gin框架基础篇004_中间件的使用与机制详解
后端·golang·gin
serendipity_hky25 分钟前
【go语言 | 第6篇】Go Modules 依赖解决
开发语言·后端·golang
小oo呆39 分钟前
【学习心得】Python的TypedDict(简介)
开发语言·python