Включая примеры Three.js с Browserify, используя три примера - PullRequest
0 голосов
/ 21 апреля 2019

Я получил три.js для работы на моем веб-сайте с помощью функции 'require' браузера.Мне нужна функциональность browserify для некоторых других функций моего веб-сайта, поэтому я не могу с ней расстаться.Чтобы обойти загрузчик GLTF и элементы управления Orbit, я использовал пакеты NPM специально для кода из этих примеров.Некоторые из других примеров, которые я надеюсь использовать, в частности DecalGeometry, не имеют таких пакетов, и создание собственного пакета и его поддержка кажутся слишком сложными.Вместо этого я надеялся использовать один из модулей NPM, который работает со всеми примерами.

Я пытаюсь использовать три примера .В документации говорится, что установка с использованием NPM не является моей проблемой.Я использовал NPM install -g three-exemplify только для того, чтобы убедиться, что он не должен находиться в определенном каталоге, поскольку приведенный пример - npm i -D three-exemplify.

Следующая инструкция - включить преобразование одним из двух способов.Я пробовал оба.

Вариант A:

browserify (). Transform ("three-exampleslify", {global: true}) , который, очевидно, является javascript, такЯ предположил, что он либо вошел в файл app.js для моего сервера узлов, либо в файл, который был в комплекте.Я попытался поместить его в файл, который был в комплекте, и он выдал ошибку, связанную с «fsstream».Вместо этого, если я приведу код ниже, я не получу никакой ошибки.

    `const THREE = require('three');
    var browserify = require("browserify");
    browserify().transform("three-exemplify", { global: true });`

Опция B:

Другой вариант - использовать командную строку с командой browserify ... -t three-exemplify --global ....Если я пытаюсь использовать это, я получаю ошибку, но без ... вещи работают.Я не до конца понимаю, что происходит на этом этапе.

Независимо от того, какой маршрут, я беру, код, который я поместил в мой связанный файл, в конечном итоге возвращается с неперехваченной ошибкой ссылки: ТРИ не определено,Код в верхней части файла, который я собираю, находится ниже.Если я закомментирую последнюю строку, весь мой другой код работает отлично.В настоящее время я ничего не делаю с THREE.DecalGeometry, и ошибка исходит из строки 4.

`var THREE = require('three');
 var GLTFLoader = require('three-GLTF-Loader');
 var OrbitControls = require('three-orbit-controls')(THREE);
 require('three/examples/js/geometries/DecalGeometry')(THREE);`

ОБНОВЛЕНИЕ:

Я выяснил, что ... в аргументах командной строкидолжны быть на входе и выходе browserify.Это не решило проблему, но позволяет команде работать как есть.

...