Дополняемая конфигурация проекта для модулей courses-*
В репозиторий вынесено содержимое конфигурации
из courses-core
.
Основная цель — использовать конфигурацию с дополнениями, взятыми из произвольного файла так, чтобы облегчить доступ к конфигурации из любого места в скрипте.
Для передачи части конфигурации, перекрывающей основную, можно использовать один из способов:
- Для скриптов, запускаемых из командной строки достаточно передать ключ
--config-path=path/to/config.js
. При этом симпортированный из файла конфиг будет объединён с конфигурацией по умолчанию. - Если необходимо использовать конфигурацию из кода, нужно получить функцию по
require('@htmlacademy/courses-config/config')
. В полученную функцию передать в качестве единственного аргумента часть конфигурации, которую нужно перекрыть.
Что для чего нужно
-
express
-
serve
— как скрипты взаимодействуют с сервером-
protocol
,host
,port
— описывают url, по которому доступен девсервер -
routes
— пути к страницам на девсервере-
courses
— путь к списку курсов -
course
— путь к списку заданий курса. Параметр:courseId
соответствует айдишнику курса -
task
— путь к заданию. Параметр:courseId
соответствует айдишнику курса,:taskId
— айдишнику задания -
check
— используется, чтобы указать путь, на который отправляются проверки. Если ключ не указан, проверки отправляются на путь, указанный вtask
. Параметры те же, что и вtask
-
-
-
-
taskLoader
-
types
— каталог с файлами-описаниями набора исходных данных для заданий -
courses
— каталог с содержимым курсов
-
-
serve
— отвечает за отображение курсов-
lang
(en|ru) — был добавлен для использования в переводе интерфейса на английский язык. Пока не используется -
templates
,metadata
— содержат информацию и шаблоны для отображения страниц девсервера -
assets
— каталог, в котором лежат стили, шрифты и картинки -
cacheTemplates
— этот флаг по умолчанию равенtrue
. Если необходимо редактировать шаблоны и перерисовывать страницы, не перезапуская девсервер, этот флаг нужно сбросить вfalse
-
-
bin
— раньше содержал пути кphantomjs
иcompare
, теперь содержит только один путь:-
compare
— путь к утилитеcompare
. По умолчанию содержит/usr/bin/compare
-
-
checks
— содержал информацию о скриптах, исполняемых во время серверных проверок-
baseDir
— базовый каталог, в который будут складываться результаты проверок -
baseUrl
— базовый путь по которому будут получены результаты проверок
-
-
timeout
— время в миллисекундах на различные задержки-
timerDefault
— время по умолчанию для интерфейсного таймера -
updateCode
— время, через которое перерисуется preview -
autosaveCode
— время, через которое автосохранится код -
velocity
— время перехода между предыдущим и новым состоянием вкладки «разница» в html-css испытании -
poll
— время опроса сервера по умолчанию -
task
— время, за которое должно посчитаться задание -
challenge
— время, за которое должно посчитаться испытание
-
-
scripts
— содержит настройки для использования экспериментальных фич вcourses-scripts
-
statistics
— собирать и отправлять статистику использования заданий
-
FAQ
В модуле используется es6. Как тогда получается использовать его в courses-scripts?
Webpack-овский loader вычисляет конфигурацию, как javascript-объект и вставляет его как JSON.stringify()
. Таким образом courses-scripts
видит только данные и никакого es6.
Как использовать конфигурацию из других модулей?
const customConfig = /** Загружаем из файла в другом модуле */
const getConfig = require(`@htmlacademy/courses-config/config`);
const config = getConfig(customConfig);