在 Angular2 Web 应用程序中使用 ArangoJS 驱动程序
Using ArangoJS Driver in Angular2 Web Application
我正在使用 Angular2 和 Typescript (v1.8.10) 开发一个项目。我们希望将 ArangoDB 数据库中的数据集成到 Web 应用程序中。如果可能的话,我想使用 arangojs 驱动程序。由于 arangojs 模块的类型尚不存在(如果它们确实存在,有人可以指点我吗?)我正在尝试使用 allowJs tsc 编译器选项。一切都很好,但是 systemjs 无法加载 arangojs 模块。我的 ts 文件中的以下行(在任何 class 定义之外):
let arangojs = require("arangojs");
转译为:
var arangojs = require("arangojs");
然而,当我加载我的 Web 应用程序时,这个 require("arangojs") 会生成以下错误:
(index):48 Error: (SystemJS) SyntaxError: Unexpected token <
欢迎就如何在 Angular2 网络应用程序中使用 arangojs 驱动程序提出任何意见或建议。
谢谢
更新
我发现了上面提到的错误。该错误是由于我的 system.config.js 中的错字造成的。修复拼写错误后,由于加载 arangojs 依赖项(如 http、https、querystring 等)时出错,模块无法加载。我推测 require 在幕后使用的模块加载器与 Angular2 使用的 systemjs 不兼容。我能够通过
加载缩小的 arangojs 驱动程序
<script src="arangojs.min.js"></script>
然后使用
declare var arangojs : any
在我的打字稿文件中。不过,我更愿意在 typescript 环境中原生使用 arangojs。有没有人在 Angular2 typescript 环境中使用过 arangojs 驱动程序(而不是我上面描述的 hack),如果是的话,你是如何让它工作的?
再次感谢。
当您尝试在浏览器中使用驱动程序时,您应该使用缩小包(它正确使用网络逻辑的网络版本而不是 Node.js 版本)。
浏览器包使用 UMD 包装器,因此如果您可以设置 SystemJS 加载缩小包而不是 NPM 模块,则应该可以使用 require
加载它。
否则,如果您可以说服您的模块加载程序加载 util/request.web.js
而不是 util/request.js
,您就可以加载 NPM 模块。该捆绑包是使用 Webpack 构建的,它会自动执行此操作。
我正在使用 Angular2 和 Typescript (v1.8.10) 开发一个项目。我们希望将 ArangoDB 数据库中的数据集成到 Web 应用程序中。如果可能的话,我想使用 arangojs 驱动程序。由于 arangojs 模块的类型尚不存在(如果它们确实存在,有人可以指点我吗?)我正在尝试使用 allowJs tsc 编译器选项。一切都很好,但是 systemjs 无法加载 arangojs 模块。我的 ts 文件中的以下行(在任何 class 定义之外):
let arangojs = require("arangojs");
转译为:
var arangojs = require("arangojs");
然而,当我加载我的 Web 应用程序时,这个 require("arangojs") 会生成以下错误:
(index):48 Error: (SystemJS) SyntaxError: Unexpected token <
欢迎就如何在 Angular2 网络应用程序中使用 arangojs 驱动程序提出任何意见或建议。
谢谢
更新
我发现了上面提到的错误。该错误是由于我的 system.config.js 中的错字造成的。修复拼写错误后,由于加载 arangojs 依赖项(如 http、https、querystring 等)时出错,模块无法加载。我推测 require 在幕后使用的模块加载器与 Angular2 使用的 systemjs 不兼容。我能够通过
加载缩小的 arangojs 驱动程序<script src="arangojs.min.js"></script>
然后使用
declare var arangojs : any
在我的打字稿文件中。不过,我更愿意在 typescript 环境中原生使用 arangojs。有没有人在 Angular2 typescript 环境中使用过 arangojs 驱动程序(而不是我上面描述的 hack),如果是的话,你是如何让它工作的?
再次感谢。
当您尝试在浏览器中使用驱动程序时,您应该使用缩小包(它正确使用网络逻辑的网络版本而不是 Node.js 版本)。
浏览器包使用 UMD 包装器,因此如果您可以设置 SystemJS 加载缩小包而不是 NPM 模块,则应该可以使用 require
加载它。
否则,如果您可以说服您的模块加载程序加载 util/request.web.js
而不是 util/request.js
,您就可以加载 NPM 模块。该捆绑包是使用 Webpack 构建的,它会自动执行此操作。