\\ 代码pendix Nx
在每个工程的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
| 选项 | 含义 |
|---|---|
projects | Nx 项目名以判断, 替换目标自己的项目 |
tags | Nx 工程标记, 判断每个携带的项目 任意 他们 |
dependencies | 构建已判断的项目' Nx依赖性关闭. true 默认; false 仅建设经判断的项目 |
configuration | 覆盖已注册的配置路径。 如果注册名称无,则需要;拒绝空白值 |
Nx 手插件选项可以推论, 也可以不做其他选择, 所以一个门给出了没有
configuration 读取此插件的 configurationPath 注册后退出
nx.json,所以一个门读取的文件就是它命名的缓存输入. 门
既不失败,则命名选项:不假定路径。 执行器选项
这不是Nx的了 --configuration 旗帜,用于选择目标配置
例如 check 或者说 write。 。 。 .
软件包
| 软件包 | 作用 |
|---|---|
@codependix/nx | Nx 插件: 在 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
许可证
麻省理工学院——见 自由主义。 。 。 .
* 调和
这个项目源于 巢-服务-项目 符合模板.