Commit f07ec7680684da20e67d21b3f70b24ec502a295d
Committed by
Gitee
!1551 fix(infra): 修复 Windows 下 Codegen 单测和代码生成统一 LF 并优化尾逗号正则
Merge pull request !1551 from haohaoMT/fix/codegen-format-windows
Showing
2 changed files
with
7 additions
and
3 deletions
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java
| @@ -459,7 +459,7 @@ public class CodegenEngine { | @@ -459,7 +459,7 @@ public class CodegenEngine { | ||
| 459 | private String prettyCode(String content, String vmPath) { | 459 | private String prettyCode(String content, String vmPath) { |
| 460 | // Vue 界面:去除字段后面多余的 , 逗号,解决前端的 Pretty 代码格式检查的报错(需要排除 vben5、vue3_admin_uniapp) | 460 | // Vue 界面:去除字段后面多余的 , 逗号,解决前端的 Pretty 代码格式检查的报错(需要排除 vben5、vue3_admin_uniapp) |
| 461 | if (!StrUtil.containsAny(vmPath, "vben5", "vue3_admin_uniapp")) { | 461 | if (!StrUtil.containsAny(vmPath, "vben5", "vue3_admin_uniapp")) { |
| 462 | - content = content.replaceAll(",\n}", "\n}").replaceAll(",\n }", "\n }"); | 462 | + content = content.replaceAll(",\\r?\\n(\\s*)}", "\n$1}"); |
| 463 | } | 463 | } |
| 464 | // Vue 界面:去除多的 dateFormatter,只有一个的情况下,说明没使用到 | 464 | // Vue 界面:去除多的 dateFormatter,只有一个的情况下,说明没使用到 |
| 465 | if (StrUtil.count(content, "dateFormatter") == 1) { | 465 | if (StrUtil.count(content, "dateFormatter") == 1) { |
| @@ -482,7 +482,8 @@ public class CodegenEngine { | @@ -482,7 +482,8 @@ public class CodegenEngine { | ||
| 482 | if (StrUtil.count(content, "DICT_TYPE.") == 0) { | 482 | if (StrUtil.count(content, "DICT_TYPE.") == 0) { |
| 483 | content = StrUtils.removeLineContains(content, "DICT_TYPE"); | 483 | content = StrUtils.removeLineContains(content, "DICT_TYPE"); |
| 484 | } | 484 | } |
| 485 | - return content; | 485 | + // 统一换行符为 LF,避免 Windows 下模板引擎输出 CRLF 导致前端 ESLint/Prettier 报错 |
| 486 | + return content.replace("\r\n", "\n"); | ||
| 486 | } | 487 | } |
| 487 | 488 | ||
| 488 | private Map<String, Object> initBindingMap(DbType dbType, CodegenTableDO table, List<CodegenColumnDO> columns, | 489 | private Map<String, Object> initBindingMap(DbType dbType, CodegenTableDO table, List<CodegenColumnDO> columns, |
yudao-module-infra/src/test/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngineAbstractTest.java
| @@ -115,7 +115,10 @@ public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest { | @@ -115,7 +115,10 @@ public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest { | ||
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | private static String normalizeLineEndings(String content) { | 117 | private static String normalizeLineEndings(String content) { |
| 118 | - return content == null ? null : content.replace("\r\n", "\n").replace("\r", "\n"); | 118 | + if (content == null) { |
| 119 | + return null; | ||
| 120 | + } | ||
| 121 | + return StrUtil.trimEnd(content.replace("\r\n", "\n").replace('\r', '\n')); | ||
| 119 | } | 122 | } |
| 120 | 123 | ||
| 121 | // ==================== 调试专用 ==================== | 124 | // ==================== 调试专用 ==================== |