Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Dart转换器中使用core.Resource会导致生成错误_Dart_Dart Pub - Fatal编程技术网

在Dart转换器中使用core.Resource会导致生成错误

在Dart转换器中使用core.Resource会导致生成错误,dart,dart-pub,Dart,Dart Pub,我从simple_transformer示例开始,介绍如何编写一个简单的Dart-Pub转换器。 此示例通过在代码中指定要插入到文件中的内容来定义该内容 String copyright = "Copyright (c) 2014, the Example project authors.\n"; 相反,我想使用新的(Dart 1.12)从本地文件(lib/copyright.txt)加载此版权信息: ,在尝试转换另一个包(Transformers就是用于此目的)时,在Transformer的

我从simple_transformer示例开始,介绍如何编写一个简单的Dart-Pub转换器。 此示例通过在代码中指定要插入到文件中的内容来定义该内容

String copyright = "Copyright (c) 2014, the Example project authors.\n";
相反,我想使用新的(Dart 1.12)从本地文件(lib/copyright.txt)加载此版权信息:

,在尝试转换另一个包(Transformers就是用于此目的)时,在Transformer的apply方法中调用它失败。你会得到一份工作的

生成错误:{your project}上的Transform InsertCopyright抛出错误:“package:simple\u resource\u Load\u transformer/copyright.txt”的加载错误:SocketException:OS错误:连接被拒绝

如何使资源在Pub转换器中工作?还是仍应将缺少的功能添加到Dart中?

更新

下面是基于TransformAPI的建议用法的工作解决方案

static Future<String> loadCopyright(Transform transform) {
  var copyrightAssetId = new AssetId('simple_resource_loading_transformer', 'lib/copyright.txt');
  return transform.readInputAsString(copyrightAssetId);
}
静态未来加载版权(转换){
var-copyrightAssetId=new-AssetId('simple_-resource_-loading_-transformer','lib/copyrighty.txt');
返回transform.readInputAsString(copyrightAssetId);
}
转换实例来自Transformer.apply方法的参数。

请参见

无论如何,您都应该使用Barback Transform API来加载资产。这就是它的目的


资源是实验性的,可能还不能正常工作。特别是它试图创建一个socket连接IMHO看起来不太好。“资源是实验性的,可能还不能正常工作。”所以我应该把它作为一个bug放在某个地方吗?我想是的。github.com/dart-lang/sdk/issues,请与此问题交叉链接。
main() {
  print('load copyright.txt');
  //this loads the resource as expected
  InsertCopyright.loadCopyright().then(
      (String code)=>print(code)
  );
}
static Future<String> loadCopyright(Transform transform) {
  var copyrightAssetId = new AssetId('simple_resource_loading_transformer', 'lib/copyright.txt');
  return transform.readInputAsString(copyrightAssetId);
}