Полудинамический импорт или чтение файла с JavaScript на localhost / no node.js - PullRequest
1 голос
/ 02 ноября 2019

Мне нужно импортировать X-файлы, содержащие одну переменную, в более крупное приложение, где X указывается пользователем. Это должно быть сделано на стороне клиента и работать на любом локальном хосте. Ограничения на браузер - это хорошо, но требовать, чтобы люди устанавливали такие вещи, как node.js, чтобы запустить его. Это слишком много.

Эти файлы могут быть адаптированы к цели, если они позволяют мне получить переменную из них - ониможет быть .txt, .js или что-то еще. Я знаю, что это может быть невозможно, по крайней мере, для определенных методов, из соображений безопасности. Некоторые дополнительные контексты приведены ниже:


У меня есть приложение JS, которое запускает тестовые элементы на локальном компьютере (или с работой, на сервере), но по умолчанию используется локальный компьютер. В настоящее время я добавляю второе приложение, которое позволяет определенным типам пользователей создавать собственные тестовые элементы для запуска в первом приложении.

Эти созданные тестовые элементы будут загружаться по отдельности, а затем переименовываться * и перемещатьсяПользователь в определенную папку. Они также загружают файл, в котором просто указывается необходимое количество тестовых заданий, и помещают этот файл в ту же папку. HTML может загружать и запускать этот файл, так как он имеет статическое имя, и всегда есть только один;таким образом, число тестовых элементов эффективно известно / жестко закодировано в приложении, которое администрирует тест. Проблема заключается в тестовых элементах.

Каждый загруженный тестовый элемент в настоящее время представляет собой файл .mjs, важная часть которого выглядит примерно так:

let testItem = [[3,3],[0,1,0,0],[0,[1,1,1],[[0,0,0,0],[1,2,0,1]]];

Хотя я экспериментировал сразличные обертки для этих данных, например:

export const testItem = [[3,3],[0,1,0,0],[0,[1,1,1],[[0,0,0,0],[1,2,0,1]]];

Предполагается, что пользователь успешно назвал их - согласно предоставленным инструкциям, и поместил эти тестовые элементы в нужную папку и т. д. Теперь мне нужно динамически импортироватьк моему тесту.

Приведенный ниже код является моей последней неудачной попыткой сделать это:

testItemList = [];
for (var x = 0; x < numberOfTestItems; x++) {
    promise = import('TestItems/'+fileName(x)+'.js')
                    .then(m => testItemList.push(m.testItem))
}

Каков наилучший способ достижения моей цели, указанной в верхней частиэтот вопрос?

Предполагая, что моя попытка выше - лучшее направление, есть ли способ приостановить код, пока он не загрузится?

* Вместо того, чтобы пользователь переименовал файлы с очень конкретными именами(что может быть легко испорчено), есть ли способ загрузки всех файлов .js в папку?

...