Я получил три.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.Это не решило проблему, но позволяет команде работать как есть.