Skip to content

composable 边界 ​

这组规则适合已经把 composable 当成项目结构约定的 Vue / Nuxt 项目。它守的是公开面、私有子模块和依赖方向,不适合在目录边界还没形成时一上来全仓设成 error。

适用场景 ​

项目里的 composable 可以先分成四层:全局 source/action 层、页面或组件局部 composable、私有子模块,以及依赖 Vue / Nuxt 上下文的 API。每一层的 owner 不同,能 import 谁、能暴露什么、什么时候读取上下文能力,也应该不同。

这组规则建议先用 warn 观察。全局层和 UI 层依赖方向这类问题比较稳定,可以较早收紧;私有模块归属、单一默认导出这类规则,需要先确认历史代码的目录口径。

包含规则 ​

规则作用
@sheng/no-extra-composable-exportsuse*.ts composable 文件只允许默认导出主 composable。
@sheng/no-flat-private-child-module提示只有单一父调用方的私有 composable / component 不要和父文件平铺在同一个目录。
@sheng/no-global-composable-import-ui-layer禁止全局 composable 反向 import UI 层。
@sheng/no-global-composable-pass-through提醒不要把全局 composable 返回值原样透传给组件或页面私有 composable。
@sheng/no-nested-vue-context-composable限制依赖当前 Vue / Nuxt 上下文的 API 只能在 setup 或 use*.ts composable 主函数顶层同步调用。

相关阅读 ​

基于 MIT 协议发布。