3

我设法在我的应用程序中添加了相对路径依赖项

name: myapp
description: A sample app
dependencies:
  mylib:
    path: ../mylib

然后将其导入我的源代码

import 'package:mylib/mylib.dart';

但是,名称“mylib”取自库包 pubspec,如果我想更改它(例如“mynewlib”),我必须在任何地方更改名称(pubspec 和 dart 源代码)

它还可以防止有 2 个具有相同名称的包(是的,我知道,很奇怪,但我无法控制人们在 pub.dartlang.org 中放置的内容)。我想做的是

name: myapp
description: A sample app
dependencies:
  mylib:
    path: ../mylib
    name: mynewlib

并在源代码中

import 'package:mynewlib/mylib.dart';

但是我找不到正确的语法以及这是否可能。(准备好测试的示例代码在这里:https ://github.com/alextekartik/dart-test/tree/master/lib_test )。请注意,这里我不是在谈论库名称而是包名称(并且命名包 mylib 可能会造成混淆)

4

2 回答 2

2

没有办法为包本身定义另一个名称(据我所知 - 如果有,我也会感兴趣)。

但是,作为一种解决方法,您可以重新包装它。例如,假设您有两个“mylib”包。

创建一个新的库应用程序“mylib1”。在那里,您导入第一个“mylib”并使用export. 为另一个“mylib”创建另一个库应用程序“mylib2”。然后,您可以在同一个应用程序中使用不同的包名称。

是的,这有点尴尬,但只要没有更好的方法......

于 2013-05-29T08:31:12.373 回答
0

您可以使用以下方法解决导入时的名称冲突:

import 'package:mylib/mylib.dart' as Foo;

这将创建一个顶级名称来访问库 API:

Foo.bar();
于 2013-05-28T18:26:12.627 回答