有没有办法在FILES DART应用程序中访问pubspec.yaml文件中列出的某些属性?

特别是,在版本信息对话框中查看版本和描述属性可能非常有用,甚至在使用控制台应用程序时可以看到"--version".我还没有找到在API中访问的方法.我不确定Mirrors是否会有任何合适的东西,但如果Web应用程序编译成JS,那么我在输出JS中的任何地方都看不到描述.

谢谢你.

EDIT

推荐答案

您可以安装"dart_config"包,并使用此代码解析pubspec.yaml文件:

import 'package:dart_config/default_server.dart';
import 'dart:async';

void main() {
  Future<Map> conf = loadConfig("../pubspec.yaml");
  conf.then((Map config) {
    print(config['name']);
    print(config['description']);
    print(config['version']);
    print(config['author']);
    print(config['homepage']);
    print(config['dependencies']);
  });
}

输出如下所示:

test_cli
A sample command-line application
0.0.1
Robert Hartung
URL
{dart_config: any}

EDIT

您可以使用YAML包本身完成此操作:

*注意:这在Flutter 网上不起作用

import 'package:yaml/yaml.dart';
import 'dart:io'; // *** NOTE *** This will not work on Flutter Web

void main() {      
    File f = new File("../pubspec.yaml");
    f.readAsString().then((String text) {
      Map yaml = loadYaml(text);
      print(yaml['name']);
      print(yaml['description']);
      print(yaml['version']);
      print(yaml['author']);
      print(yaml['homepage']);
      print(yaml['dependencies']);
    });
}

向罗伯特致敬

Dart相关问答推荐

在Flutter中在 initstate() 之前调用了dependOnInheritedElement()

如何在 Flutter Web 中动态更改 App Title?

无法在 IOS 上使用 firebase 运行Flutter应用程序

Flutter Drawer 作为单独的小部件不允许修改宽度

FlutterError (setState() 在 dispose() 之后调用:(生命周期状态:defunct,not mounted)

如何在streambuilder中查询firestore文档并更新listview

在dart polymer重复模板中获取索引

如何在 Flutter/dart 中获取一周中特定日期的日期?

如何在 Dart 语言中将 Future 转换为 List

在调试和生产模式之间切换

flatter:如何使用JSON数据创建数组

如何在Flatter dart中使用相同的元素初始化列表?

如何从类中访问元数据注释?

参数类型Map Function()不能分配给参数类型Map

在 Dart 中使用固定长度列表有性能优势吗?

Dart 会在多核环境中并行执行隔离吗?

Dart 中 await for 和 listen 的区别

是否可以在 Dart 中的一行上初始化列表?

在 Dart 中获取集合/列表中数字总和的最简洁方法是什么?

如何在 Dart 中运行重复出现的函数?