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 [email protected] wants gulp@~3.1.9
npm ERR! peerinvalid Peer [email protected] wants gulp@~2.3.0

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

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

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

相关推荐
加瓦点灯14 分钟前
什么?工作五年还不了解SafePoint?
后端
悟能不能悟15 分钟前
讲一件Java虚拟线程
java·开发语言·oracle
sjg2001041417 分钟前
golang学习随便记x[2,3]-字符串处理与正则表达式
开发语言·学习·golang
fictionist18 分钟前
动态 Web 开发技术入门篇
java·服务器·开发语言·笔记·学习·mysql·spring
C MIKE23 分钟前
ztree.js前端插件样式文字大小文字背景修改
开发语言·前端·javascript
PN杰24 分钟前
Matlab解决无法读取路径中的空格
开发语言·matlab·dsp开发
Simple_core1 小时前
qt3d自定义生成mesh图形
开发语言·qt·3d
他日若遂凌云志1 小时前
Lua 模块系统的前世今生:从 module () 到 local _M 的迭代
后端
David爱编程1 小时前
Docker 安全全揭秘:防逃逸、防漏洞、防越权,一篇学会容器防御!
后端·docker·容器
小码编匠1 小时前
WinForm 工业自动化上位机通用框架:注册登录及主界面切换实现
后端·c#·.net