@codependix/nx

中文文档
0.0.62发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 8489

Nx 插件推断每个项目的编码endix 边界门, 判断每个项目的 Nx 依赖性关闭

中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 大门
  4. 执行器选项
  5. 软件包
  6. 测试
  7. 捐款
  8. 许可证
  9. * 调和

\\ 代码pendix Nx

npm

在每个工程的Nx依赖关闭上建起一个Nx插件,检查每个工程的编码边框.

图表导出、配置、边界规则和 如何将调查结果记入项目 @codependix/cli 读取。 。 。 . @codependix/cli 不需要 Nx 插件 : --projects 财务报告和审定财务报表 --tags 已经 缩窄 a --check boundaries 从平地跑到它判断的项目 壳. 这个软件包是工具链中依赖于 @nx/devkit,并增加了只有任务执行者才能做到的:

  • 每个项目的门这样 nx affected, (中文(简体) ), --projects=tag:…,则 任务缓存进行选择.
  • 以边界被打破的项目命名的失败,而不是一个 整个工作空间的任务对他们来说都是失败的.

安装

npm install --save-dev @codependix/nx

登记在册 nx.json数字 :

{
  "plugins": [
    {
      "plugin": "@codependix/nx",
      "options": {
        "configurationPath": "configuration/codependix.config.ts",
        "gateTargetName": "codependix-bound"
      }
    }
  ]
}
选项含义
configurationPath要求. 代码化配置所住之处. 注册插件而不失败推断, 命名选项; 没有默认路径
gateTargetName推断出的目标. codependix-bound 省略时

门管指挥线 @swc-node/register 钩子,什么 此插件本身依赖并注册 —— 工作空间不需要 安装它们。 工作空间根确实需要一个 tsconfig.json 发送 装饰元数据: 钩子从工作目录读取, 从 : 从其类型Script来源中检查靴子 NestJS 容器,以及 构造器注入读取了元数据.

使用量

门被推断为每个工程 project.json, (中文(简体) ), 除了工作空间根,它的依赖性关闭是整个工作空间. A 类 工程 Nx 从 a 推断 package.json 单枪匹马没有大门,直到得到它 (单位:千美元) project.json 还有.

nx run lexico-db:codependix-bound          # one project
nx run-many -t codependix-bound                  # every project
nx affected -t codependix-bound                  # only what changed

大门

每个门都从工作空间根运行:

node --import <file URL of @codependix/nx/loader> <@codependix/cli/main> \
  map --directory <workspaceRoot> --config <configuration> \
  --check boundaries --projects <project>

@codependix/nx/loader 登记 @swc-node/register 钩子解析自 此插件本身的位置 。 钩子是自己的 @swc-node/register/esm-register 可以从工作目录——消费者的根——中解决这些问题, 当 pnpm 这样的软件包管理器不显示此插件时 依赖性。 装填器和命令行的输入都解决了 通过软件包导出, 因此同一闸门在内部运行 TypeScript 源 此工作空间和已建 dist/ 来自已安装副本的文件。 其产出 被流到任务到达时,任务只在离开时通过 无.

一个依赖的分界线就是依赖的大门的生意. 这个 图表是建在项目和它所依赖的一切上,所以一个循环 仍可发现存在依赖关系的情况,但只有一项调查结果被归罪于 工程门失败 。 向抚养人收取的费用以纸币形式印制,以及 失败的依赖者自己的门.

目标被缓存. 其投入是项目本身的来源及其 依赖性'(default, (中文(简体) ), ^default),工作空间配置规则 生活,项目自己的 codependix.config.*,和编码后缀命令 线条本身——因为没有经过判断的项目取决于决定其 判决,如果改变代码, 将会重放每个缓存的密码:

  • 何时 @codependix/cli 是同一工作空间的软件包, 2 {workspaceRoot} 输入它和它到达的每个工作空间包 结束 workspace: 依赖性 : <package>/package.json 财务报告和审定财务报表 <package>/src/**/!(*.test.*|*.spec.*) - 未经测试的来源, 因此,只测试编辑到命令行的闸门无效 软件包本身和它的依赖。 文件缩写 而不是说 { "input", "projects" } 输入, 因为 Nx 受到影响 计算如下 {workspaceRoot} 抹黑并忽略后者——所以 更改命令行源的分支选择每个门,一个 这只能改变它的测试。 测试不包括在 而不是被一个 !- 前置输入, 受影响的计算 无视.

  • 当从登记册中安装时 externalDependencies 输入命名 它和那个 @codependix/* 软件包取决于它,所以一个版本起伏 取消缓存。 Nx 将外部依赖加在一起 取决于一切,所以 @codependix/* 下方的软件包 盖也.

  • 无论哪种情况, {workspaceRoot}/tsconfig.json 和每个tscond它 extends. 装载器(@swc-node/register)取其编译器选项—— emitDecoratorMetadata 其中,决定雀巢JS如何来源 汇编——从 SWC_NODE_PROJECT 或者说 TS_NODE_PROJECT,否则 tsconfig.json 在闸门的工作目录中,工作空间根,以及 从来没有从一个包裹自己的。 档案通过 extends, (中文(简体) ), 从而在 TypeScript 解析时跟随链条进行推断——一个字符串 或数组,通过每个关卡,注释和后缀允许, .json 附加到命名无文件的路径, 并带一个光包名称 联合国 tsconfig.json 或编号 exports (不向 tsconfig 区域 明显的,这是罕见的:

    • 工作空间中的基础,通过相对路径或通过一揽子 同一个工作空间,是另一个 {workspaceRoot} 输入。 一个也是 缺少或无法解析 —— 修正它的编辑会失效 门 - 虽然它会延伸什么 无法遵循,和Nx的日志 警告它命名.
    • 安装的软件包提供的基础,例如 @tsconfig/node24 —— 说 以软件包或路径命名 node_modules - 在一个 externalDependencies 输入,所以一个版本的凸起使缓存无效, 但只有在根时 package.json 从一个 登记。 Nx 失败的每个任务 externalDependencies 名称 a 软件包在图中缺失,所以只有另一个软件包宣布, 或通过 workspace:, (中文(简体) ), file:, (中文(简体) ), link:,或 portal:跳过 警告:在根中声明 package.json 拥有它 散开.
    • 工作空间外的基地,或解析为无文件的软件包基地, 无法用任何输入来命名,而是以警告跳过.

    A 类 SWC_NODE_PROJECT 或者说 TS_NODE_PROJECT 指向别处不是 随后: 将该文件添加到目标输入中 。 也没有 gitignored 碱基, 如生成的框架 tsconfig, 无效 任何东西: 它被命名了, 但是 Nx 的文件映射会忽略文件 .

每个工作空间软件包都是通过输入而不是通过 它的表,所以一个无法解决的,只花费它自己的投入: 纳克丝 logger警告它命名,而所有其他软件包都保留其输入. 如果 命令行本身无法在图形、工具构建时解决 输入被忽略,并且警告它的名称——从不辜负图表。 这个 tsconfig 链在命令行之外解决, 所以失败或失败 保持对方的投入。 这个 目标声明否 configurations因此,集合器运行与 --configuration=check 倒计时.

一个缓存的门 projects 或者说 tags 选择它自己以外的任何东西 项目被拒绝 . 它的投入包括自己的项目和该项目的 依赖性,不是这样的项目 运行评委,所以Nx可以重放过关 在编辑到当前失败的工程之后。 Nx 修正 cache 每个目标, 因此目标设定 projects 或者说 tags 也必须设置 cache: false; 数据 执行器会发出这样一条消息, 选择是否来自 命令行、目标选项或配置。 门只判断 其项目——包括 projects 完全标出项目名称 继续缓存.

执行器选项

nx run lexico-api:codependix-bound --projects=lexico-db,lexico-api
nx run logging:codependix-bound --tags=type:package --dependencies=false
选项含义
projectsNx 项目名以判断, 替换目标自己的项目
tagsNx 工程标记, 判断每个携带的项目 任意 他们
dependencies构建已判断的项目' Nx依赖性关闭. true 默认; false 仅建设经判断的项目
configuration覆盖已注册的配置路径。 如果注册名称无,则需要;拒绝空白值

Nx 手插件选项可以推论, 也可以不做其他选择, 所以一个门给出了没有 configuration 读取此插件的 configurationPath 注册后退出 nx.json,所以一个门读取的文件就是它命名的缓存输入. 门 既不失败,则命名选项:不假定路径。 执行器选项 这不是Nx的了 --configuration 旗帜,用于选择目标配置 例如 check 或者说 write。 。 。 .

软件包

软件包作用
@codependix/nxNx 插件: 在 Nx 依赖性关闭上建造的每个项目边界门
@codependix/cli管弦乐四相相图所造者,运出出所出所出所出所出所出所出所出所出所出 --check boundaries
@codependix/boundaries构建每个层次的图表,根据宣布的规则判断,并将每个发现收费给一个项目
@codependix/configuration读取 codependix.config.ts 并解决每个项目的出口目的地和边界规则

测试

nx run codependix-nx:vitest

捐款

nx run codependix-nx:lint-code --configuration=check

许可证

麻省理工学院——见 自由主义。 。 。 .

* 调和

这个项目源于 巢-服务-项目 符合模板.

版本与发布记录

@codependix/nx 共发布 63 个版本,首次发布于 2026/10/13;过去 12 个月发布了 63 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.62latest2026/11/10今天
0.0.612026/11/091 天前
0.0.602026/11/091 天前
0.0.592026/11/091 天前
0.0.582026/11/082 天前
0.0.572026/11/073 天前

关于 @codependix/nx 的常见问题

@codependix/nx 是什么?

Nx 插件推断每个项目的编码endix 边界门, 判断每个项目的 Nx 依赖性关闭

如何安装 @codependix/nx?

在项目目录运行 npm install @codependix/nx,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:typescript(^6.0.3)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@codependix/nx 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@codependix/nx 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@codependix/nx 可以商用吗?

@codependix/nx 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@codependix/nx 的下载量有多少?

根据 npm 官方下载统计,@codependix/nx 在 2026/10/10 – 2026/11/08 这 30 天内被下载 8,489 次,日均约 283 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@codependix/nx 还在维护吗?

最新版本 0.0.62 发布于 2026/11/10(今天);至今共发布 63 个版本,其中过去 12 个月发布了 63 个;首次发布于 2026/10/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。