我设法在我的应用中添加了相对路径依赖
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可能会让人困惑)
答案 0 :(得分:2)
没有办法为包本身定义另一个名称(据我所知 - 如果有的话,我也会感兴趣)。
但是,作为一种解决方法,您可以重新包装它。例如,假设您有两个“mylib”包。
创建一个新的库应用程序“mylib1”。在那里,您导入第一个“mylib”并使用export
重新导出它。为另一个“mylib”创建另一个库应用程序“mylib2”。然后,您可以在同一个应用程序中使用不同的包名称。
是的,它有点尴尬,但只要没有更好的方法......
答案 1 :(得分:0)
您可以使用以下命令解决导入时的名称冲突:
import 'package:mylib/mylib.dart' as Foo;
这将创建一个顶级名称来访问库API:
Foo.bar();