Foxx 依赖项按名称导入,而不是按安装点导入

Foxx dependencies import by name, not by mounting point

据我阅读此 documentation 中有关 'Defining dependencies':

的片段的理解

will allow using any app to be used to meet the dependency. sessions or sessions@* will match any app with the name sessions (such as the sessions app in the Foxx application store). sessions@1.0.0 will match the version 1.0.0 of any app with the name sessions.

Foxx 将查找名称为 'sessions' 的任何依赖项。但是,当我在本地尝试时,它似乎试图找到安装在 /sessions 而不是名称 'sessions' 的任何应用程序,如果我像这样使用 'sessions@1.0.0' 格式,这个错误会填充在日志中:

[ArangoError 3007: Mountpoint can only contain a-z, A-Z, 0-9 or _.]: [object Arguments]

这是预期的行为吗?不过,我真的希望是否可以按名称而不是挂载点导入应用程序。

文档中的 blurb 指的是 manifest.json 文件中的值。清单中的依赖项由映射到格式为 <name>@<version> 的字符串的别名定义。该字符串的确切含义目前并未强制执行,因此它仅用作应用程序的文档。

如果您安装的应用程序具有依赖项,则需要设置依赖项(例如使用 Web 前端)。 Web 前端的依赖项对话框允许您输入要用于满足依赖项的应用程序的安装路径。

应用程序本身的代码将能够通过清单中定义的别名引用安装在这些路径上的应用程序的导出。

例如:

  1. 您使用以下依赖项创建了一个名为 example 的应用程序:

    "dependencies": {"mySessions": "sessions@^1.0.0"}
    
  2. 您安装了一个会话应用程序(例如来自 Foxx 应用程序商店的 sessions 应用程序)并将其安装在 /my-sessions

  3. 您安装 示例 应用程序并将其安装在其他地方。

  4. 您在 Web 前端打开 示例 应用程序的应用程序详细信息,然后打开依赖项对话框(右上角的框图标)。

  5. 该对话框应显示一个标题为 MySessions 的输入字段,并带有一个帮助弹出窗口,显示 sessions@^1.0.0.

  6. 在输入栏中输入/my-sessions并保存。

  7. 您的 示例 应用程序现在应该能够访问位于 applicationContext.dependencies.mySessions 的应用程序的导出。