Files

70 lines
2.7 KiB
YAML
Raw Permalink Normal View History

2026-08-17 15:29:55 +08:00
# Conti Retail App —— 根工程(Pub Workspace + Melos
#
# 约定来源:conti-docs/01-project-structure.md
# 注意:Melos 8 不再使用独立的 melos.yaml,配置全部内联在本文件的 melos: 段。
# 每个子包必须写 resolution: workspace,否则不会被纳入统一解析。
name: conti_retail_app
publish_to: none
environment:
sdk: ^3.12.0
# ---------------------------------------------------------------------------
# 工作区成员。新增包时必须同步加到这里,否则 melos bootstrap 看不到它。
# 依赖方向规则(01 依赖约束,编译期强制):
# feature_* → core_* / native_* feature 之间禁止互相依赖)
# core_* → native_* / core_foundation core_* 之间仅允许下列三条例外)
# core_network → core_auth
# core_router → core_auth
# core_webview → core_auth
# native_* → 只依赖 Flutter SDK 和 Pigeon 产物,不依赖仓库内任何包
# ---------------------------------------------------------------------------
workspace:
- app
- packages/core_foundation
- packages/core_logging
- packages/core_analytics
- packages/core_storage
- packages/core_auth
- packages/core_network
- packages/core_ui
- packages/core_router
- packages/core_webview
- packages/feature_auth
- packages/feature_home
- packages/native_scan
- packages/native_scan/example
dev_dependencies:
melos: ^8.2.2
melos:
scripts:
analyze:
description: 静态分析。--fatal-infos 不可去掉,否则 info 级别的 lint 等于没配。
run: melos exec --fail-fast -- flutter analyze --fatal-infos
format:
description: 校验格式(page_width 由根 analysis_options.yaml 的 formatter 段控制)。
run: melos exec -- dart format --set-exit-if-changed .
test:
description: 跑所有带 test/ 目录的包。
run: melos exec --dir-exists=test --fail-fast -- flutter test --coverage
coverage:
description: 合并各包 lcov 并检查 60% 门禁。
run: dart pub global run coverde value -i coverage/lcov.info --min-coverage 60
gen:
description: 代码生成(riverpod / drift / json_serializable)。
run: melos exec --depends-on=build_runner -- dart run build_runner build --delete-conflicting-outputs
gen:watch:
description: 开发期常驻的增量代码生成。
run: melos exec --depends-on=build_runner -- dart run build_runner watch --delete-conflicting-outputs
gen:pigeon:
description: 生成 native_* 的跨语言接口。产物必须提交到 git。
run: melos exec --scope="native_*" -- dart run pigeon --input pigeons/scan_api.dart