20 条回复  ·  2268 次点击
dssxzuxc 初学 2025-9-16 21:00:50
去搞跨语言 monorepo 的懒得评论,属于没事找事,我就默认是 typescript monorepo packages/eslint-config packages/prettier-config 这是错误做法,在新版本 eslint 中,一个 monorepo 应当只有一个 eslint.config 和一个 prettier.config ,它们覆盖所有要 lint 的文件,新版本扁平化配置文件能精细地针对不同文件,不同包,不同场景进行定制配置,旧版本这种到处塞屎的做法已经过时了,共享配置用得好那很好,但是多数人用不好,写得一坨狗屎,应该让最有经验的那人认真写一份集中配置,然后慢慢改进。 所有配置遵循最小化原则,像 prettier 就没几条是需要配置的,默认配置已经很好了。 尽量使用适合团队的 recommended 规则,然后在此之上进行小幅改动,能不改就最好不改。 如果团队个个都是体操大师,请选择 strictTypeChecked+stylisticTypeChecked ,如果只想凑合过过日子,那就降级成 recommendedTypeChecked ,觉得 lint 太花时间就换 strict ,断言选手太多了 recommended 也不是不行。 每个热门项目一般都有积极维护的 eslin 推荐配置,真正要自己配置的规则,其实最多也就几十条,再多那一定是因为各种历史原因堆积下来,维护者没时间去看默认配置的变更,很多开源项目就是这样,推动 lint 迭代比写代码还难,主要是性价比太低。 同上所述,tailwind/unocss 等等东西的配置文件也应该只有一份,一定需要分开的只有 packag.json 、tsconfig.json 权限管理?代码是世上最不值钱的东西,不会以为自己写出来的东西很宝贵吧?值钱的只有能赚钱的业务,这玩意是 copy 不了的。 Monorepo 不是大坑,屎山才是大坑。
imvkmark 初学 2025-9-16 21:06:59
@JoeJoeJoe 你的图咋传的, Pro 才有的权限 ?
Torpedo 小成 2025-9-16 21:11:32
个人觉得 monorepo 能火,本质就是通过 monorepo ,解决版本管理对多项目管理的不足
dssxzuxc 初学 2025-9-16 21:21:22
最重要的是,lint 一定要持续升级,如果以任何理由拒绝 lint 的升级,那项目引入 lint 没有任何意义。 lint 升级会强迫维护者重构自己代码,会暴露出隐藏起来的运行时隐患,升级 lint 不会破坏代码行为,只会破坏流水线,流水线不是用来看的,连 lint 都不升级那可能对代码行为产生破坏的依赖就更不会升级,那整个流水线也没多大意义,费心搞基础建设,结果不强制推动迭代,那一开始就别搞,一地鸡毛。
renmu 该用户已被删除 2025-9-16 21:31:32
提示: 作者被禁止或删除 内容自动屏蔽
weiwenhao 小成 2025-9-16 21:33:25
原来把多个项目放到一个仓库的方式叫 monorepo, 第一次知道这个名词。 我今天刚好做了这样的事情,因为受不了 git submodule ,然后多个仓库 issue 管理起来麻烦,并且对子仓库的贡献不能很好的体现在核心项目中。
tonytonychopper 小成 2025-9-16 21:53:17
@imvkmark 搞个 FSHEX polish 插件
mark2025 小成 2025-9-16 21:55:47
@weiwenhao 别用 git submodule ,太麻烦了。monorep 好得多
Pipecraft 小成 2025-9-16 21:57:23
@imvkmark #11 imgur 的图片就可以。很多 V2 扩展或油猴脚本支持上传图片。
seth19960929 初学 2025-9-16 22:28:05
monorepo 只做单语言的, 多语言的干嘛用这个
返回顶部