smalljs$molПоиск⌘ KДокументацияПесочницаСравнениеЭкосистемаО проектеRU
Метаданные модуляGetting StartedВведениеМентальная модельБыстрый стартОт TypeScript к view.treeСтруктура проектаИнструментарийEssentialsУстановкаВьюСостояние и реактивностьРоутингРендерингТестированиеДеплойРешение проблемDataЗагрузка данныхСхемы данныхГипер БазаMoreВитринаИз React, Vue и SvelteСборник рецептовAdvancedПлагиныМетаданные модуляОфлайнGhost-вьюAboutЧастые вопросыКомандаРелизыAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Метаданные модуля

Рядом с компонентами модуля файл name.meta.tree объявляет метаданные сборки и деплоя — то, что касается модуля в целом, а не какого-то отдельного вью. Обычное место для него — модуль приложения.Вот app.meta.tree этого сайта:1include \/mol/offline/install2include \/bog/builderui/theme.css3deploy \/bog/smalljs/assets

Директивы

deploy \/path — копирует указанный файл или папку в результат продакшен-сборки. Нужна для статики, которую деплой обязан унести, но на которую не ссылается код: изображения, шрифты, иконки. Здесь \/bog/smalljs/assets отправляет логотип и остальные файлы из assets/.require \/path — затаскивает модуль в бандл, даже если на него никто не ссылается, для случая, когда его код должен отработать раньше кода модуля, которому принадлежит этот meta.tree. Модуль подключается как обычная зависимость с высоким приоритетом. Работает и путь к модулю (\/mol/wire/patch), и отдельный файл.include \/path — то же принудительное подключение, но когда порядок загрузки не важен. Модуль подтягивается с пониженным приоритетом, то есть грузится после кода, который от него зависит. Примеры: include \/mol/offline/install (побочным эффектом регистрирует service worker) и include \/bog/builderui/theme.css (сырой стилевой файл).pack <name> git \<url> — сопоставляет пространство имён с git-репозиторием, откуда MAM его тянет, например pack mol git \https://github.com/hyoo-ru/mam_mol.git. Именно так $mol_*, $hyoo_* и ваши собственные пакеты разрешаются в настоящий код.Зачем вообще подключать что-то принудительно? Сборщик сам вычисляет зависимости и кладёт в бандл только то, что код действительно использует. Изредка нужен модуль, на который код не ссылается: например, приложение тянет целый каталог компонент, чтобы они существовали в рантайме. require и include закрывают ровно этот случай и отличаются только порядком загрузки.

Где он живёт

Объявления pack относятся к .meta.tree корня воркспейса — это реестр каждого пакета, который воркспейс может подтянуть. Держите их там, а не в подмодулях; собственный meta.tree подмодуля должен нести только require/include/deploy, специфичные для него.
Редактировать эту страницу на GitHubБыло полезно?ДаНетНазадПлагиныВперёдОфлайн
На этой страницеДирективыГде он живёт
Type to search the documentation.