Dart库可见性

时间:2013-12-27 02:53:54

标签: dart package-structuring

我的Dart应用程序具有以下结构:

myapp/
    pubspec.yaml
    pubspec.lock
    asset/
        ...
    web/
        logging/
            Logger.dart
            LogLevel.dart
        ...other packages

2显示的Dart文件是:

LogLevel.dart

library logging;

class LogLevel {
    static const TRACE = const LogLevel._(0);
    static const INFO = const LogLevel._(1);
    static const ERROR = const LogLevel._(2);

    static get values => [TRACE, INFO, ERROR];

    final int value;

    const LogLevel._(this.value);
}

Logger.dart

library logging;   // <== compiler error!?!

import "package:logging/LogLevel.dart";

class Logger {
    // ...
}

我想,因为我将这两个类放在一个logging库/包中,它们彼此可见。但事实并非如此!而不是import语句,我得到以下编译器错误:

  

URI的目标不存在:'package:logging / LogLevel.dart'

这里发生了什么?我应该如何以不同方式包装/库存我的类型,以便彼此可见?

1 个答案:

答案 0 :(得分:1)

您可以通过相对路径导入它们,而无需参考包:

import 'LogLevel.dart';

如果您确实要将它们作为包导入,则需要位于lib文件夹下。