Как импортировать библиотеку Three.js Line в качестве модуля ES6? - PullRequest
0 голосов
/ 31 января 2019

Я занимаюсь разработкой с использованием современного JS (ES6), что означает модули.

Хотя Three.js доступен как модуль ES6.Библиотека строк - LineSegmentsGeometry, LineGeometry, LineSegments2 и т. Д. - отсутствует.

Какие у меня есть варианты?

1 Ответ

0 голосов
/ 31 января 2019

У вас есть пара вариантов.

Прежде всего, отредактируйте код.

Вы можете изменить код, чтобы вы могли вручную повернуть его.это в модуль ES6.Вы хотели бы удалить любые ссылки THREE и экспортировать все, что обычно было прикреплено к этому объекту.Вам также нужно будет импортировать все необходимые базовые компоненты THREE.js, такие как Mesh, Vector3 и т. Д.

Я предпочитаю делать это, чтобы скопировать файл, который я обновляю локально,и изменить ссылки на него.Например:

// local_three_modules/LineSegments2.js
import { Mesh, Vector3, etc. } from "three"

let LineSegments2 = function ( geometry, material ) {
    // ...
}

export default LineSegments2
// app.js
import { Mesh, Vector3, etc. } from "three"
import LineSegments2 from "./local_three_overrides/LineSegments2.js"

// and so on...

Другой вариант - использовать упаковщик с загрузчиком экспорта.

Webpack (и другие упаковщики, я простоболее знакомый с Webpack) предоставляет exports-loader, который можно использовать против определенных файлов, которые ничего не экспортируют.Например, вы можете указать exports-loader экспортировать THREE из LineSegments2.js.Чтобы подключить веб-пакет к этому процессу, необходимо указать загрузчику файла.Вы можете сделать это через конфигурацию веб-пакета или встроенный код, подобный следующему:

import THREE from "exports-loader?THREE!./node_modules/three/examples/js/lines/LineSegments2.js"
...