Flutter架构规范检查插件architecture_linter的使用
Flutter架构规范检查插件 architecture_linter 的使用
architecture_linter 是一个帮助你保持项目结构有序的Flutter插件。它允许你定义多种规则,这些规则会作为有用的lint提示显示在你喜欢的IDE中。
安装
使用命令行安装
$ dart pub add --dev architecture_linter
# 或者对于Flutter项目
$ flutter pub add --dev architecture_linter
手动添加到 pubspec.yaml
dev_dependencies:
architecture_linter: ^0.3.0
然后运行:
$ dart pub get
# 或者对于Flutter项目
$ flutter pub get
添加插件到分析器
为了使分析器能够使用该插件,请在 analysis_options.yaml 文件中添加以下内容:
analyzer:
plugins:
- architecture_linter
基本配置
在 analysis_options.yaml 文件中添加配置。你可以从预定义的配置开始:
architecture_linter:
excludes:
- "**.g.dart"
lint_severity: warning
layers:
- &infrastructureLayer
name: "Infrastructure"
path: "(infrastructure)"
- &domainLayer
name: "Domain"
path: "(domain)"
- &presentationLayer
name: "Presentation"
path: "(presentation)"
- &useCaseLayer
name: "Domain/UseCases"
path: "(domain/use_cases)"
- &utils
name: "Utils"
path: "(utils)"
- &repository
name: "repository"
path: "(repository)"
layers_config:
- layer: *repository
severity: error
banned_imports:
- layer: *domainLayer
banned:
- *presentationLayer
- *useCaseLayer
- *infrastructureLayer
- layer: *presentationLayer
banned:
- *infrastructureLayer
- layer: *infrastructureLayer
banned:
- *useCaseLayer
- *presentationLayer
- layer: *useCaseLayer
banned:
- *presentationLayer
- *infrastructureLayer
配置Lint严重性
要更改整个插件的Lint严重性级别,请在 analysis_options.yaml 文件中的 architecture_linter 下添加 lint_severity 条目,并选择以下三个值之一:
infowarningerror
例如:
lint_severity: error
你也可以为已经定义的禁用层下的更低级别的层配置严重性。
例如:
lint_severity: warning
layers:
- &domainLayer
name: "Domain"
path: "(domain)"
- &presentationLayer
name: "Presentation"
path: "(presentation)"
- &repository
name: "repository"
path: "(repository)"
- &useCaseLayer
name: "Domain/UseCases"
path: "(domain/use_cases)"
layers_config:
- layer: *repository
severity: error
- layer: *infrastructureLayer
severity: error
banned_imports:
- layer: *presentationLayer
banned:
- *domainLayer
- layer: *useCaseLayer
banned:
- *domainLayer
- layer: *infrastructureLayer
severity: info
banned:
- *domainLayer
CLI
该插件还支持CLI命令。运行如下命令:
$ dart run architecture_linter:analyzer analyze lib
# 或者对于Flutter项目
$ flutter pub run architecture_linter:analyzer analyze lib
你还可以配置严重性级别,当分析器检测到特定级别的不一致性时退出并返回 exit code 2。例如:
# 默认为warning
$ dart run architecture_linter:analyzer analyze lib --set-exit-on-severity-level=info
这样,当检测到 info 或更高严重性的不一致性(如 error, warning)时,分析器将返回 code 2。
示例Demo
下面是一个简单的示例项目结构,展示了如何应用 architecture_linter 插件:
project/
├── lib/
│ ├── domain/
│ │ └── user.dart
│ ├── infrastructure/
│ │ └── api_service.dart
│ ├── presentation/
│ │ └── home_screen.dart
│ └── utils/
│ └── helper_functions.dart
├── analysis_options.yaml
└── pubspec.yaml
在这个例子中,我们希望确保 domain 层不能导入 presentation 层或 infrastructure 层的内容。这可以通过 architecture_linter 插件的配置来实现。
在 analysis_options.yaml 中添加相应的配置:
architecture_linter:
lint_severity: warning
layers:
- &domainLayer
name: "Domain"
path: "(domain)"
- &presentationLayer
name: "Presentation"
path: "(presentation)"
- &infrastructureLayer
name: "Infrastructure"
path: "(infrastructure)"
banned_imports:
- layer: *domainLayer
banned:
- *presentationLayer
- *infrastructureLayer
更多关于Flutter架构规范检查插件architecture_linter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter架构规范检查插件architecture_linter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用architecture_linter插件来检查架构规范的一个示例。architecture_linter 是一个帮助开发者确保他们的Flutter项目遵循特定架构规范的工具。它通常用于确保代码遵循诸如Clean Architecture、MVVM等架构模式。
步骤 1: 添加依赖
首先,在你的Flutter项目的pubspec.yaml文件中添加architecture_linter依赖:
dev_dependencies:
flutter_test:
sdk: flutter
architecture_linter: ^最新版本号 # 替换为当前最新版本号
步骤 2: 安装依赖
在项目的根目录下运行以下命令来安装依赖:
flutter pub get
步骤 3: 配置架构规范
你需要创建一个配置文件来定义你希望architecture_linter检查哪些架构规范。通常,这个文件命名为.arch-lint.yaml,并放在项目的根目录下。
以下是一个简单的配置文件示例:
linters:
layer_order:
enabled: true
layers:
- presentation
- domain
- data
rules:
no_presentation_in_domain:
enabled: true
source_dir: domain
excluded_imports:
- ^package:flutter/
- ^package:material_design_icons/
no_domain_in_presentation:
enabled: true
source_dir: lib/ui
excluded_imports:
- ^package:your_domain_package/
在这个配置文件中,我们定义了两个规则:
layer_order:确保代码文件按照指定的层次结构排列。no_presentation_in_domain和no_domain_in_presentation:确保domain层不包含presentation层的代码,反之亦然。
步骤 4: 运行架构检查
配置完成后,你可以在命令行中运行以下命令来检查架构规范:
flutter pub run architecture_linter:lint .
示例代码结构
假设你的项目结构如下:
your_flutter_project/
├── lib/
│ ├── domain/
│ │ └── some_domain_file.dart
│ ├── data/
│ │ └── some_data_file.dart
│ └── ui/
│ └── some_presentation_file.dart
├── .arch-lint.yaml
├── pubspec.yaml
└── ...
在这个结构中,domain层包含业务逻辑,data层处理数据访问,ui层包含界面逻辑。通过.arch-lint.yaml配置文件,你可以确保这些层之间的依赖关系正确无误。
注意事项
- 确保你安装了最新版本的
architecture_linter。 - 根据你的项目需求,自定义
.arch-lint.yaml配置文件中的规则。 architecture_linter主要用于静态代码分析,它不会运行你的代码,只是检查代码的结构和依赖关系。
通过以上步骤,你可以在Flutter项目中有效地使用architecture_linter插件来检查架构规范。

