我正在试图弄清楚如何在Dart Server应用程序中使用变换器。到目前为止,我已经阅读了https://www.dartlang.org/tools/pub/assets-and-transformers.html和https://www.dartlang.org/tools/pub/transformers/上的文章,并使用该信息编写了以下变换器。
import 'dart:async';
import 'package:barback/barback.dart';
class TestTransformer extends Transformer {
final BarbackSettings _settings;
TestTransformer.asPlugin(this._settings);
AssetId assetId;
Future<bool> isPrimary(AssetId id) {
assetId = id;
return new Future.value(id.toString().endsWith('.txt'));
}
apply(Transform transform) {
transform.primaryInput.readAsString().then((text) {
String output = text.toUpperCase;
print(output);
transform.addOutput(new Asset.fromString(assetId.addExtension('.upper'), output));
});
}
}
当我使用pub run
时,我看到变压器运行,print
线路输出正如预期的那样。我缺少的是* .txt.upper输出文件。我在我的系统上找不到这样的文件。这个输出到底在哪里,我如何在我的代码中使用它?使用我的意思是能够使用File.open()
读取文件,如果输出是Dart文件,则将其导入另一个Dart文件。
答案 0 :(得分:1)
据我所知,不支持控制台/服务器应用程序的变换器。当我运行pub upgrade
时,我也会在Precompiling dependencies
之后看到已加载了一些变换器,但这似乎并不处理您的源文件。