【问题标题】:Dartanalyzer - exclude parts of librariesDartanalyzer - 排除部分库
【发布时间】:2014-09-28 15:26:33
【问题描述】:

Hej,我正在使用drone.io 和一个飞镖项目。在我的构建脚本中,我有这个 cmd:

dartanalyzer lib/*.dart

它可以正常工作并扫描所有 dart 文件,但我的 lib 目录还包含被拆分为不同文件并使用 dart part of 功能的库。当 dartanalyzer 扫描这些文件时,它会产生以下错误:

Only libraries can be analyzed.
lib/mylib.part.dart is a part and can not be analyzed.

并且构建失败。有没有办法排除这些文件或隐藏这些错误?我用.part.dart 命名了属于lib 的所有文件。 谢谢。

【问题讨论】:

    标签: bash shell dart continuous-integration drone.io


    【解决方案1】:

    我相信这是因为您要求 DartAnalyzer 单独分析每个 .dart 文件,这意味着它正在查找只是部分的脚本。

    它应该已经跟随到其他文件的链接,所以你应该能够将入口点传递给它,它应该会自动扫描所有被引用的文件。

    您还可以通过--show-package-warnings 让分析器包含您使用import 'package:...'; 导入的文件的结果

    【讨论】:

    • 感谢您的快速答复。这是否也会扫描未使用 importpart 语句明确引用的文件,例如我用作隔离的文件?
    • 我稍微更新了我的答案; --package-root 开关不符合我的想法;这只是为了让您告诉分析器应该将package: uris 解析到哪里。我不相信您可以让它扫描未包含的任意文件,除非您还将它们包含在命令中。所以你可以做dartanalyzer bin\*.dart test\*.dart 让它扫描你所有的bin脚本和测试引用的所有东西(希望包括所有文件!)
    【解决方案2】:

    我找到了另一个方向的解决方案:我只是使用 bash 过滤所有以.part.dart 结尾的文件。这是我的代码:

    #!/usr/bin/env bash
    set -o xtrace
    set -e
    
    diranalyzer() {
      for f in $@
      do
    
        if [[ $f == *.part.dart ]]
        then
          continue
        fi
    
        dartanalyzer $f
      done
    }
    
    diranalyzer ./*.dart
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多