Невозможно импортировать A-frame в компонент - Angular2

У меня есть проект, созданный с помощью angular-cli, где я установил aframe через npm install aframe --save, и когда я пытаюсь импортировать его в компонент через import 'aframe';, возникает следующая ошибка:

Не удалось выполнить registerElement для Document: Ошибка регистрации для типа a-node. Тип с таким именем уже зарегистрирован.

В этом случае единственный способ заставить его работать — импортировать библиотеку в тег <head> файла index.html. Вместо этого я хотел бы получить доступ к aframe object3D для изменить сущности объектов, как показано здесь:

AFRAME.registerComponent('foo', {
  init: function () {
    // Do something
  }
});

но, к сожалению, я не могу заставить его работать. У вас есть идея, как решить эту проблему? Заранее спасибо за ваши ответы!


person d_z90    schedule 10.02.2017    source источник


Ответы (1)


Вот что вам нужно для правильной работы в Angular2:

  1. Отредактируйте свой angular-cli.json и добавьте путь к узлу скриптов:
"scripts": [
  "node_modules/aframe/dist/aframe-master.js"
],
  1. Загрузите типизацию с https://github.com/devpaul/aframe-typings/blob/master/src/AFRAME.d.ts.

  2. Ссылайтесь на типизацию в вашем компоненте с помощью:

/// <reference path="../typings/AFRAME.d.ts" />

или установите типизацию глобально в tsconfig.json:

"files": [
    "typings/AFRAME.d.ts"
  ]
person Ben Richards    schedule 10.02.2017
comment
Выбросы AFRAME.d.ts не могут найти пространство имен THREE. Есть идеи? - person TheUnreal; 08.04.2017