如何在Melos中排除packages/**/example文件夹?Monorepo场景求助
解决Melos重复识别包的问题
当然可以排除packages/**/example/目录,只需要修改melos.yaml里的packages配置,添加否定匹配规则即可,具体操作如下:
修改后的melos.yaml配置
name: <my_mono_repo> packages: - examples/** - packages/** - '!packages/**/example' # 排除所有packages下的example目录 scripts: # ...
原理说明
- 原配置中
packages/**会扫描到packages/foo/example这个软链接目录,而examples/**已经扫描了examples/foo,导致Melos识别出两个同名的foo_example包,触发报错。 - 添加
'!packages/**/example'后,Melos会跳过所有packages子目录下的example文件夹,避免重复扫描同一个包。 - 同时,
packages/foo/example的软链接依然能满足pub.dev的要求——pub.dev会读取packages/foo下的example目录内容,不管它是不是软链接,所以演示应用的展示不受影响。
验证配置
修改完成后,执行以下命令确认配置生效:
melos list
输出中应该只会出现一次foo_example(来自examples/foo),不会再出现重复条目。
内容的提问来源于stack exchange,提问作者user9836706
相关产品推荐
相关产品推荐

