Bash Dartanalyzer-排除库的部分

Bash Dartanalyzer-排除库的部分,bash,shell,dart,continuous-integration,drone.io,Bash,Shell,Dart,Continuous Integration,Drone.io,嘿,我正在使用drone.io和dart项目。在我的构建脚本中,我有以下命令: dartanalyzer lib/*.dart 它工作正常,可以扫描所有dart文件,但我的lib目录还包含一些库,这些库被拆分成不同的文件,并使用功能的dart部分。当dartanalyzer扫描这些文件时,会产生以下错误: Only libraries can be analyzed. lib/mylib.part.dart is a part and can not be analyzed. 构建失败了。有

嘿,我正在使用drone.io和dart项目。在我的构建脚本中,我有以下命令:

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

Only libraries can be analyzed.
lib/mylib.part.dart is a part and can not be analyzed.
构建失败了。有没有办法排除这些文件或隐藏这些错误?我用
.part.dart
命名了库中的所有文件。
谢谢。

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

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


您还可以传递
--show package warnings
,让analyzer包含您使用
import'package:…'导入的文件的结果

我在另一个方向找到了一个解决方案:我只使用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

谢谢你的快速回答。这是否也会扫描未使用
import
part
语句明确引用的文件,就像我用作隔离的文件一样;
--package root
开关不符合我的想法;它只是让您告诉分析器它应该将
package:
uri解析到哪里。我不相信您可以让它扫描未包含的任意文件,除非您在命令中也包含它们。因此,您可以执行
dartanalyzer bin\*.dart test\*.dart
,让它扫描所有bin脚本和测试引用的所有内容(希望包括所有文件!)