Использование драйвера ArangoJS в веб-приложении Angular2

Я работаю над проектом, используя Angular2 и Typescript (v1.8.10). Мы хотим интегрировать данные из базы данных ArangoDB в веб-приложение. Я хотел бы использовать драйвер arangojs, если это возможно. Поскольку наборы для модуля arangojs еще не существуют (если они существуют, может кто-то указать мне на них?), Я пытаюсь использовать опцию компилятора allowJs tsc. Все проходит нормально, но systemjs не может загрузить модуль arangojs. Следующая строка в моем файле TS (вне определения любого класса):

let arangojs = require("arangojs");

переносит в:

var arangojs = require("arangojs");

Однако, когда я загружаю свое веб-приложение, эта команда require("arangojs") выдает следующую ошибку:

(index):48 Error: (SystemJS) SyntaxError: Unexpected token <

Любые советы или предложения относительно использования драйвера arangojs в веб-приложении Angular2 приветствуются.

Спасибо

Обновить

Я нашел ошибку, отмеченную выше. Ошибка произошла из-за опечатки в моем system.config.js. После исправления опечатки модуль не удалось загрузить из-за ошибок при загрузке зависимостей arangojs, таких как http, https, querystring и многих других. Я предполагаю, что загрузчик модулей, используемый за кулисами по требованию, несовместим с systemjs, используемыми Angular2. Я смог загрузить минимизированный драйвер Arangojs через

<script src="arangojs.min.js"></script>

а затем использовать

declare var arangojs : any 

в моем файле машинописи. Я предпочел бы использовать arangojs изначально в среде машинописи. Кто-нибудь использовал драйвер arangojs в среде машинописи Angular2 (а не взлом, который я описал выше), и если да, то как вы заставили его работать?

Еще раз спасибо.

1 ответ

Решение

Поскольку вы пытаетесь использовать драйвер в браузере, вы должны использовать минимизированный пакет (который правильно использует веб-версию сетевой логики вместо версии Node.js.).

Пакет браузера использует оболочку UMD, поэтому должна быть возможность загрузить его с require если вы можете настроить SystemJS для загрузки минимизированного пакета вместо модуля NPM.

В противном случае вы сможете загрузить модуль NPM, если сможете убедить загрузчик вашего модуля загрузить util/request.web.js вместо util/request.js, Пакет построен с использованием Webpack, который делает это автоматически.

Другие вопросы по тегам