Foxx依赖项按名称导入,而不是通过挂载点导入

时间:2015-06-29 10:12:12

标签: arangodb foxx

据我所知,通过阅读此documentation中有关'定义依赖关系'的

的摘要:

  

将允许使用任何应用程序来满足依赖性。   会话或会话@ *将匹配任何具有名称会话的应用程序(例如Foxx应用程序商店中的会话应用程序)。   sessions@1.0.0将匹配任何名称为sessions的应用程序的1.0.0版本。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

例如:

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

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

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

  4. 您在网络前端打开示例应用的应用详情,然后打开依赖关系对话框(右上角的方框图标)。

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

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

  7. 您的示例应用现在应该可以在applicationContext.dependencies.mySessions访问该应用的导出。