如何在本地开发Dart库?

12
我可能正在经历一次心智日食,但最简单的事情对我来说很难:写一个简单的库并使用它。(我想在本地完成所有操作,而不发布库等。)
我已经浏览了pub命令列表,似乎没有一种命令可以本地安装包,那么我怎样才能在其他项目中使用它呢?
例如,我刚刚克隆了这个库,想要在本地测试它是否可用。我该如何做?

1
看起来你混淆了包和库。在Dart中,一个包由一个或多个库组成,也可以有仅包含资源文件而没有任何库的包。库是一个Dart脚本文件。该库还可以包括其他文件(使用part/part of连接)。如果你想在同一包中使用一个库,只需导入它 import 'some_library_file.dart'; - Günter Zöchbauer
3个回答

17

要使用本地库,您可以在pubspec中指定本地文件路径,例如:

dependencies:
  transmogrify:
    path: /Users/me/transmogrify

使用本地依赖时,Dart会自动获取任何更改,因此无需运行特殊的pub命令。


4
为什么听起来很荒谬?这只是一行代码的更改,可以完全按照你想要的方式操作。说实话,在我的看法中,需要一个单独的发布命令来链接本地软件包才更加荒谬 :) - hopper
然而,我所知道的所有其他软件包管理器都是这样工作的。它们有一个仓库,你可以从网上或任何其他来源填充它作为依赖项。Maven、npm、dub等。 - Binders Lachel
是的,这绝对很常见 - 我只是不确定它是否更好。 :) 值得一提的是,npm支持以相同的方式使用本地文件路径。而且我不认为我会把Maven作为一个现代化的包管理器做得正确的例子...;-) - hopper
1
我不喜欢这种方法的原因是我不想改变pubspec文件以使用我的本地版本_git repo_类型依赖。例如:在JS软件包中,npm link可以让我在不修改package.json文件的情况下本地使用软件包。 - Emile Bergeron

2

1
你为什么这样认为?我强烈建议你阅读所有链接的文章,以更好地理解pub使用的依赖系统及其提供的所有可能性。 - Alexandre Ardhuin
我只想创建一个库并使用它。这种方式强制我记住它的存储位置,因为我无法发布/安装它。不管怎样,这更像是一个makefile而不是依赖管理器。 - Binders Lachel
1
如果需要的话,可以将其放在与pubspec相同的位置。"path:"配置接受相对路径。 - computmaxer

0

您还可以使用包的名称来进行相对路径指定,例如:

dependencies:
   my_other_package:
      path: ../my_other_package

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接