Aframe systems [имя] не является конструктором

#aframe

#aframe

Вопрос:

У меня есть проект aframe, который был частью приложения React и работает нормально.

Из-за различных проблем я пытаюсь разделить слои

Я добавил сцену aframe непосредственно в HTML-документ

   <body>
      <div id="root" style="height: 100%; width: 100%">

      </div>

      <a-scene>
      </a-scene> 

  </body>
  

Часть React отрисовывается нормально, но AFRAME сбой с

Ошибка типа: systems [имя] не является конструктором

От

  this.systems[name] = new systems[name](this);
 this.systemNames.push(name);
  

Библиотека aframe импортируется через Webpack.

Есть идеи, что может вызвать это?

Ответ №1:

У меня была такая же проблема при использовании Aframe через npm или при добавлении его с помощью тега script, когда у него есть type="module" defer атрибут or.

Рабочий скрипт:

 <script src="https://aframe.io/releases/1.3.0/aframe.min.js"></script>
  

Вероятно, это связано с тем, что вы используете пользовательские теги html с a-frame . Поэтому скрипт должен быть загружен до того, как он будет анализировать html.

Не работает (в настоящее время в моей среде):

 <script src="https://aframe.io/releases/1.3.0/aframe.min.js" defer></script>
  
 <script src="https://aframe.io/releases/1.3.0/aframe.min.js" type="module"></script>
  
 >> npm i aframe
import aframe from "aframe";
  

Было бы неплохо увидеть некоторые комментарии / решения по нерабочим вариантам.

Установка:
система: Windows 10
bundler: vite
node: v16.13.0
aframe: v1.3.0

Ответ №2:

Сегодня у меня была такая же проблема. Я использовал Cloudflare с загрузчиком Rocket. Вот почему это не работало. Как только я отключил его, он работал нормально.