Yarn能否检查特定依赖?脚本检测package.json依赖的专用命令?
嘿,很高兴能帮到你!针对你的两个问题,我来逐一解答:
1. Yarn是否支持检查某个特定的依赖项?
当然支持啦!不管你用的是Yarn Classic(v1.x)还是Yarn Berry(v2及以上版本),都有原生的方式来检查特定依赖是否存在于你的项目中,还能灵活区分是顶层依赖(直接写在package.json里的)还是嵌套依赖。
2. 有没有专用命令替代当前的管道写法?
你当前的命令虽然能正常工作,但确实有更简洁、更原生的专用命令——不用依赖grep和wc,结果也更可靠:
针对Yarn Classic(v1.x)
直接检查顶层依赖(对应你
--depth=0的需求):yarn list --depth=0 settings如果
settings依赖已安装,会输出该依赖的名称和版本;如果不存在,会返回类似info There are no dependencies matching your search的提示。要是你在脚本里做自动化判断,可以利用命令的退出码(依赖存在时退出码为0,不存在时为非0):
if yarn list --depth=0 settings >/dev/null 2>&1; then echo "settings依赖已安装" else echo "settings依赖未安装" fi这种写法比统计行数更稳定,不会因为Yarn输出格式变化导致判断出错。
针对Yarn Berry(v2+)
- 检查顶层依赖可以用:
如果是 monorepo 项目,想要检查所有工作区的依赖,可以用:yarn list --depth=0 --pattern settings
另外,yarn workspaces foreach -A --no-private list --pattern settingsyarn why settings命令还能详细查看该依赖是否存在、被哪个包引用,不过输出信息较多,更适合手动排查,脚本里用的话可能需要额外处理输出内容。
内容的提问来源于stack exchange,提问作者kharandziuk
相关产品推荐
相关产品推荐

