registerXXX 回りを素の継承にする実験は動いた。 しかし変更箇所が多くなりすぎるので、 少しずつ進めるようにやりなおし。

eslit

まず eslint を成敗する。 overrides を空にした。 わたくしは最近の js を使いたいのです。

{
"extends": ["semistandard", "standard-jsx"],
"parserOptions": {
"ecmaVersion": 12
},
"rules": {
, // …
},
"overrides": [
{
/* Code within /src is restricted to using ES5 JavaScript
The exception is that ES6 classes are used sparingly - see exceptions below. */
"files": ["./src/**/*.js"], // 👈
"parserOptions": {
"sourceType": "script",
"ecmaVersion": 5 // 👈
}
}
, // …。例外が続く。
]
}

rules も空にした方がよさそうだが、var とか大量に引っかかるので保留。

"space-before-function-paren": "off"

registerXXX の改造

prototype の元を受けとって継承したクラスを生成して登録するのだけど、 後半のクラス登録を別の関数に分けて、継承済みクラスの直接登録もできるように拡張する。

  • registerSystem
  • registerComponent

できた。 他に、geometry, primitive, material, shader などの register があるのだけど、 これらは継承した class を登録するという感じではないので見送り。

esmodule 化

ここまで webpack の dev server を使って作業してきたが、 vite の dev server に変えて、 esmodule 化をやってみる。

<script src="../../../dist/aframe-master.js"></script>

👇

<script type="module" src="../../../src/index.js"></script>
Uncaught ReferenceError: require is not defined

examples\test\cube\index.html 動いた

初期化の動きはなんとなく判った。 カスタムタグ、面白い。 メインループは未だ読めていない。

次は、

GitHub - networked-aframe/networked-aframe: A web framework for building multi-user virtual reality experiences.
A web framework for building multi-user virtual reality experiences. - networked-aframe/networked-aframe
GitHub - networked-aframe/networked-aframe: A web framework for building multi-user virtual reality experiences. favicon https://github.com/networked-aframe/networked-aframe
GitHub - networked-aframe/networked-aframe: A web framework for building multi-user virtual reality experiences.