如何从另一个仅在运行时知道的Dart包中加载代码?

Set*_*add 9 dart

我正在构建一个Dart应用程序.它需要从第三方软件包加载代码,该软件包仅在运行时才知道.我的申请需要:

  1. 自动发现依赖关系
  2. 从该依赖项加载库
  3. 与依赖项交互

理想情况下,我不希望要求我的用户指定第三方依赖项.应用程序应自动发现依赖项.

例如,工作流可能是这样的:

  1. 用户安装我的应用程序(pub global activate my_app)
  2. 用户安装"插件"(pub global activate plugin_for_my_app)
  3. 用户运行我的应用程序(my_app)
  4. 该应用程序自动发现plugin_for_my_app存在.
  5. 该应用程序加载插件(spawnUri可能?)
  6. 该应用程序调用插件

要求:

  1. 必须从命令行运行.
  2. 必须适用于Windows,Mac,Linux.
  3. 编译为JavaScript时应该(但不必)运行.
  4. pub run支持是可选的(pub run使其变得棘手,因为它会重写您的导入URI,所以这不是必需的)

最好的方法是什么?

Gün*_*uer 3

这个包https://pub.dartlang.org/packages/plugins似乎通过将插件加载到隔离中来完全满足您的要求(尽管我自己还没有使用它)。