Flutter依赖检查插件dart_dependency_checker_cli的使用

发布于 1周前 作者 wuwangju 来自 Flutter

Flutter依赖检查插件dart_dependency_checker_cli的使用

dart_dependency_checker_cli 是一个命令行工具,用于检查Dart/Flutter项目中的依赖关系。它可以帮助开发者识别未使用的依赖、传递依赖的使用情况等,从而优化项目的依赖管理。

安装

首先,你需要安装 dart_dependency_checker_cli。可以通过以下命令全局安装:

dart pub global activate dart_dependency_checker_cli

使用

1. 检查未使用的依赖

deps-unused(或简写为 du)命令用于检查项目中未使用的依赖项。你可以指定要检查的包路径,并忽略某些开发依赖项。

# 检查 /some/package 中未使用的依赖项,忽略 lints 和 build_runner
ddc deps-unused -p /some/package --dev-ignores lints,build_runner

# 使用别名
ddc du -p /some/package --di lints,build_runner
2. 检查传递依赖的使用

transitive-use(或简写为 tu)命令用于检查传递依赖是否在项目中被使用。你可以指定要检查的包路径,并忽略某些主依赖项。

# 检查 /some/package 中传递依赖的使用情况,忽略 async 和 meta
ddc transitive-use -p /some/package --main-ignores async,meta

# 使用别名
ddc tu -p /some/package --mi async,meta
3. 其他功能
  • 即时修复:你可以使用 --fix 选项来自动移除未使用的依赖项。

    # 自动移除未使用的依赖项
    ddc deps-unused -p /some/package --fix
    
  • JSON 输出:你可以使用 --json 选项以 JSON 格式输出检查结果。

    # 以 JSON 格式输出未使用的依赖项
    ddc deps-unused -p /some/package --json
    
  • 多包环境:如果你在一个包含多个包的 mono-repo 中工作,可以使用 melos 或者循环遍历每个包来运行检查。

    # 使用 melos 在 mono-repo 中运行
    melos exec -c1 -- ddc deps-unused
    
    # 遍历每个包并运行检查
    for d in */ ; do (cd $d && ddc deps-unused); done;
    

未来计划

dart_dependency_checker_cli 计划增加更多功能,例如:

  • dep-origin 命令:该命令将利用 dart pub deps -s compact --no-dev 来提取直接依赖或传递依赖的来源。

示例项目

以下是一个完整的示例项目,展示了如何使用 dart_dependency_checker_cli 来检查依赖项。

假设你有一个名为 my_flutter_app 的 Flutter 项目,结构如下:

my_flutter_app/
├── lib/
│   └── main.dart
├── pubspec.yaml
└── ...
  1. 安装 dart_dependency_checker_cli

    在终端中运行以下命令来安装插件:

    dart pub global activate dart_dependency_checker_cli
    
  2. 检查未使用的依赖

    进入项目目录并运行以下命令来检查未使用的依赖项:

    cd my_flutter_app
    ddc deps-unused --dev-ignores lints,build_runner
    

    这将检查 pubspec.yaml 中定义的依赖项,并忽略 lintsbuild_runner 这两个开发依赖项。

  3. 检查传递依赖的使用

    如果你想检查传递依赖是否在项目中被使用,可以运行以下命令:

    ddc transitive-use --main-ignores async,meta
    

    这将检查传递依赖的使用情况,并忽略 asyncmeta 这两个主依赖项。

  4. 自动移除未使用的依赖

    如果你想自动移除未使用的依赖项,可以使用 --fix 选项:

    ddc deps-unused --fix
    

    这将自动编辑 pubspec.yaml 文件,移除所有未使用的依赖项。

  5. JSON 输出

    如果你想以 JSON 格式输出检查结果,可以使用 --json 选项:

    ddc deps-unused --json
    

更多关于Flutter依赖检查插件dart_dependency_checker_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter依赖检查插件dart_dependency_checker_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用dart_dependency_checker_cli插件进行依赖检查的代码案例。dart_dependency_checker_cli 是一个命令行工具,用于检查 Dart/Flutter 项目中的依赖项是否符合某些规则。尽管它是一个命令行工具,但我们可以在 Flutter 项目中通过脚本调用它。

1. 安装 dart_dependency_checker_cli

首先,你需要在全局环境中安装这个命令行工具。打开你的终端并运行以下命令:

dart pub global activate dart_dependency_checker_cli

2. 配置 dependency_rules.yaml

在你的 Flutter 项目根目录下创建一个 dependency_rules.yaml 文件,用于定义你的依赖规则。例如:

rules:
  - name: no_transitive_dependencies
    description: "Disallow transitive dependencies"
    pattern: ".*"
    allowed_transitive: false
  - name: specific_version
    description: "Enforce specific version for a package"
    pattern: "provider"
    allowed_versions:
      - "^6.0.0"

3. 在 Flutter 项目中使用命令行工具

你可以在项目的 pubspec.yaml 所在的目录中运行 dart_dependency_checker 命令。为了方便,你可以创建一个脚本文件,比如 check_dependencies.sh

#!/bin/bash

# Run dart_dependency_checker
dart pub global run dart_dependency_checker:main .

确保脚本文件具有可执行权限:

chmod +x check_dependencies.sh

4. 将脚本集成到 CI/CD 流程(可选)

如果你使用 CI/CD 服务(如 GitHub Actions, GitLab CI, Travis CI 等),可以将上述脚本集成到你的构建流程中。以下是一个 GitHub Actions 的示例:

name: Check Dependencies

on: [push, pull_request]

jobs:
  check-dependencies:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Dart
        uses: dart-lang/setup-dart@v1

      - name: Install dart_dependency_checker_cli globally
        run: dart pub global activate dart_dependency_checker_cli

      - name: Run dependency checker
        run: dart pub global run dart_dependency_checker:main .

5. 手动运行脚本

你可以在本地手动运行脚本以检查依赖项:

./check_dependencies.sh

如果依赖项不符合 dependency_rules.yaml 中定义的规则,命令行工具将输出相应的错误信息。

总结

通过上述步骤,你可以在 Flutter 项目中使用 dart_dependency_checker_cli 插件来检查依赖项是否符合你定义的规则。这有助于确保你的项目依赖项的一致性和安全性。

回到顶部