В файле index.js директории 06-build-page напишите скрипт который:
- Создаёт папку project-dist.
- Заменяет шаблонные теги в файле template.html с названиями файлов из папки components (пример:
{{section}}) на содержимое одноимённых компонентов и сохраняет результат в project-dist/index.html. - Собирает в единый файл стили из папки styles и помещает их в файл project-dist/style.css.
- Копирует папку assets в project-dist/assets
- Запрещается использование любых сторонних модулей
- Каждое из заданий должно запускаться командой node <имя папки задания> выполненной в корневой директории
- Запрещается использование синхронных функций модуля fs такие, как
fs.statSync(path[, options]),fs.readFileSync(path[, options])и другие находящиеся в разделе synchronous API
- После завершения работы скрипта должна быть создана папка project-dist
- В папке project-dist должны находиться файлы index.html и style.css
- В папке project-dist должна находиться папка assets являющаяся точной копией папки assets находящейся в 06-build-page
- Запрещается использование fsPromises.cp()
- Файл index.html должен содержать разметку являющуюся результатом замены шаблонных тегов в файле template.html
- Файл style.css должен содержать стили собранные из файлов папки styles
- При добавлении компонента в папку и соответствующего тега в исходный файл template.html повторное выполнение скрипта приведёт файл index.html в папке project-dist в актуальное состояние перезаписав его. Файл style.css и папка assets так же должны поддерживать актуальное состояние
- При записи двух и более шаблонных тегов подряд в файле template.html, разделенных между собой только пробелами без переноса строки, не должно возникать ошибок выполнения кода. Например,
{{about}} {{articles}}должно расцениваться как 2 отдельных компонента - Исходный файл template.html не должен быть изменён в ходе выполнения скрипта
- Запись в шаблон содержимого любых файлов кроме файлов с расширением .html является ошибкой
- Создание небольшой утилиты позволяющей собрать статичную HTML страницу.
- Закрепление полученных знаний
Один из возможных порядков выполнения задачи:
- Импорт всех требуемых модулей
- Прочтение и сохранение в переменной файла-шаблона
- Нахождение всех имён тегов в файле шаблона
- Замена шаблонных тегов содержимым файлов-компонентов
- Запись изменённого шаблона в файл index.html в папке project-dist
- Использовать скрипт написанный в задании 05-merge-styles для создания файла style.css
- Использовать скрипт из задания 04-copy-directory для переноса папки assets в папку project-dist
Обратите внимание, что данный алгоритм вы можете оптимизировать и изменять по своему усмотрению.