$.getScript
загружает скрипты JavaScript. В отличие от внутренних сценариев, сценариев, где содержимое находится внутри HTML, нельзя использовать внешний сценарий для загрузки чего-либо, кроме JavaScript.
Чтобы загрузить текстовый файл современным простым способом, используйте fetch и async / await
async function main() {
const vertexShader = await fetch("path/to/file/vertexShader.glsl").then(req => req.text());
...
}
main();
или, конечно, превратите его в функцию
async function main() {
const vertexShader = await loadText("path/to/file/vertexShader.glsl");
...
}
function loadText(url) {
return fetch("path/to/file/vertexShader.glsl").then(req => req.text());
}
main();
или без async / await [ 1118]
fetch("path/to/file/vertexShader.glsl")
.then(req => req.text())
.then(function( vertexShader ) {
console.log(vertexShader);
});
или если вы хотите, чтобы это выглядело как getScript
getTextFile("path/to/file/vertexShader.glsl", function( vertexShader ) {
console.log(vertexShader);
});
function getTextFile(url, callback) {
fetch("path/to/file/vertexShader.glsl")
.then(req => req.text())
.then(callback);
}
, где сказано, что если бы я и я хотел, чтобы мои шейдеры были внешними, я бы использовал import
] / export
как в
// myvertexshader.glsl
default export `
attribute vec4 position
void main() {
gl_Position = position;
}
`;
И тогда вы можете import
сделать это в другом модуле javascript, как в
// main.js
import vertexShader from './myvertexshader.glsl';
...
main.js, который должен быть включен как модуль [ 1122]
import
работает только в современных браузерах (например, в тех, которые запускают WebGL2), но вы можете использовать что-то вроде накопительного пакета , чтобы преобразовать его обратно в старый файл JavaScript в одном стиле.
Это имеет то преимущество, что во время разработки все ваши файлы являются отдельными, но для производства / развертывания вы можете собрать свой JavaScript в один большой файл, который будет загружаться намного быстрее, чем многие маленькие файлы
three.js делает это , если вы хотите увидеть пример
Я знаю, что Вы упомянули, что уже попробовали Подверсию и имели некоторые проблемы, но Вы действительно не можете победить легкую установку и конфигурацию
Безумно легкий установить и поддержать.
Используйте VisualSVN для бэкенда и TortoiseSVN для клиента, и Вы будете в порядке в мгновение ока.
Плюс Вы может всегда делать svndump репозитория VisualSVN, если Вы хотите переключиться на что-то еще в будущем.
Я использую Buildix от Thoughtworks. Можно установить его на выделенном сервере или использовать его в качестве VM. Хотя это - больше, чем просто SVN: Это также включает trac, Cruisecontrol и Mingle.
Я обдумывал этот точный вопрос и серьезно рассматривал Базар. Я не могу сказать Вам, насколько хороший это, не используя его, но Вы могли бы хотеть проверить его, поскольку это выглядит многообещающим. Подобный Мерзавцу и Подвижный, но они утверждают, что намного легче настроить и использовать.
Другое голосование за Subversion+TortoiseSVN, хотя это не играет приятно на внутреннем NAS на основе FAT32.
Необходимо, по крайней мере, посмотреть на окаменелость с открытым исходным кодом VCS www.fossil-scm.org, это может работать и DVCS и клиент-серверным VCS.
Прямо сейчас это не имеет графического интерфейса, но я уверен, что будет тот когда-то в будущем.
Если Вы будете играть вокруг с окаменелостью, то Вы найдете, что использование командной строки, VCS не является столь сложным, как это могло бы казаться.
Ну, откровенно говоря, я предложил бы сосать его и сделать SVN. Это может быть грубый запуск, но это окупится.
Я использовал и cvs и svn, к большому эффекту, для домашних проектов. Лично, я звучу как svn немного тяжелее для установки первоначально - определение структуры каталогов и использование тех URL для всего, казалось, были, дают больше стычки, чем это должно иметь. Хотя svn обычно видит большее использование всюду по промышленности, если бы у Вас нет проблем с cvs, я волновался бы слишком много о различии. Понятия, окружающие управление исходным кодом (которые главным образом накладываются между двумя), более важны.
Это больше не находится действительно в моде, но я имел большой успех с помощью CVS для управления версиями. Я сохраняю папку 'кода' со всеми своими фрагментами кода на различных языках, а также всеми своими персональными домашними проектами в репозитории CVS. CVS является более старым и не работает, а также другие системы с переименованием или реструктуризацией папок/файлов. На обороте то, что это было вокруг таких длинных средств, существует много портов и приложений GUI для него, а также пакетов интеграции для IDE, и т.д. Я был очень рад им в течение прошлых нескольких лет, что использовал его, несмотря на любые недостатки.
Можно использовать Подверсию без стычки установки сервера.
Просто загрузите TortoiseSVN и создайте локальный репозиторий в папке, которую Вы предпочитаете. Используйте тот же клиент, чтобы сделать обновления, фиксации...
Кто-то упомянул Мерзавца; я упомяну Подвижный с TortoiseHg.
Я лично использую продукт Хранилища SourceGear, это свободно для однопользовательского доступа и было бризом для установки, и это имеет клиента администрирования GUI, а также Интеграцию VS.
Не бойтесь git
. Стало намного легче использовать, чем это раньше было!
Это соответствует всем Вашим требованиям (открытый исходный код/free/run на Win32 / GUI, который включен), и существует много хороших доступных ресурсов.
Как действительно основное руководство, с помощью командной строки ("Мерзавец GUI" должен быть симпатичен сам объяснительный):
mkdir myrepo
- сделайте новый каталог, это могло быть существующим dir с Вашим кодом в нем git init
- превращает каталог в репозиторий мерзавца. это в основном добавляет a .git/
папка к текущему каталогу. Это похоже на использование VisualSVN, создавая новый репозиторий, затем проверяющий его к рабочему каталогу (только без сервераvim myfile.txt
- сделайте новый файл, если у Вас есть существующие файлы, очевидно, можно пропустить этоgit add myfile.txt
- начните отслеживать новый файл (подобный svn add
'луг файл)git commit
- фиксации вообще Вы работали git add
на... и вот именно. У Вас есть прослеженный файл версии! При изменении файла Вы делаете git add myfile.txt
снова для "подготавливания" изменений затем фиксируйте добавлять все подготовленные файлы в фиксацию.
Это немного отличается к тому, как SVN работает. С SVN Вы фиксируете файл, и он отправляется на сервер. С мерзавцем Вы подготавливаете файл (или несколько файлов или даже биты файла, который очень полезен), затем фиксируют их.
Можно сделать все вышеупомянутое легко (включая создание репозиториев, подготовив определенные строки в файле) в Мерзавце GUI.
В Windows, установка msysgit.
Затем если Вы не возражаете тратить 9$, наблюдайте эпизод МЕРЗАВЦА Peepcode за всесторонним обзором того, каков мерзавец, как он работает, и как использовать его.
С другой стороны, GitCasts являются также очень хорошим (свободным) набором скринкастов, которые покрывают большую часть основного материала. Наблюдайте за теми, Вы думаете, было бы полезно для Вас, я рекомендую следить за установкой, затем нормальный рабочий процесс, затем МЕРЗАВЕЦ на окнах
Наконец, Волшебство МЕРЗАВЦА является замечательным гидом по выполнению всего с мерзавцем. Я использую его много, несмотря на то, что использовал мерзавца много за прошлый год или так (для ответа, "полезно, как делают меня..." вещи, которые Вы забываете. Скажите, "как я восстанавливаю потерянную фиксацию", "как я сбрасываю репозиторий к 4 изменениям назад"),
Я также рекомендовал бы играть вокруг с GitHub. Это - очень хорошее для использования размещающего мерзавца сайта. При создании нового репозитория он дает Вам список команд, чтобы сделать новый репозиторий и продвинуть Ваши изменения в к GitHub (что-то, что я действительно не покрывал - распределенный рабочий процесс gitcasts, peepcode эпизод и волшебство мерзавца все покрытие это действительно хорошо),
По необходимости имеет бесплатные две пользовательских версии. Превосходный продукт. http://www.perforce.com/
Обновление 2012 года: Там теперь бесплатные 20 пользовательских версий, все еще превосходных, с новыми возможностями.
Единственными опциями, о которых я знаю, которые отвечают Вашим требованиям, является CVS и SVN. Из тех 2 я рекомендовал бы SVN. Я знаю, что Вы уже попробовали его без успеха, поэтому возможно, необходимо попытаться отправить другой вопрос, описывающий точно, какова проблема была.
Наш великолепный лидер отправил пошаговое руководство, описывающее, как установить SVN на окнах, которые могли бы разрешить Вашу проблему.
Я думаю, что SVN является действительно Вашим лучшим выбором. Смотрите на документацию здесь о том, как настроить ее.
Я настроил пару SVN repos на поле окон и никогда действительно имел проблему особенно, когда Вы используете TortoiseSVN
Я не могу полагать, что никто не упомянул МЕРЗАВЦА.
Это идеально для того, что Вы ищете. Каждый рабочий каталог становится репозиторием. Это - простой случай изменения на Ваш dir проекта. Init'ing и Committing затем начинают работать. Имеет некоторые аккуратные функции того, чтобы перейти и объединиться.