В Quasar манифест расширения (extension manifest)
представляет собой центральный файл конфигурации, который определяет
свойства, возможности и поведение расширения. Он необходим для того,
чтобы Quasar CLI корректно распознал расширение, интегрировал его в
проект и обеспечил взаимодействие с другими компонентами экосистемы.
Манифест расширения обычно располагается в корне пакета расширения и
имеет формат index.js или extension.json.
Основные поля манифеста включают:
"my-quasar-extension".app-extension
или cli-extension). В большинстве случаев используется
app-extension.Пример минимального манифеста index.js для расширения
Quasar:
module.exports = function (api) {
api.extendQuasarConf((conf) => {
conf.boot.push('~my-extension/boot/index.js');
conf.framework.plugins.push('Notify');
});
return {
name: 'my-extension',
version: '1.0.0',
description: 'Расширение для уведомлений',
author: 'Developer Name',
type: 'app-extension'
};
};
bootПоле boot отвечает за автоматическую загрузку файлов,
которые инициализируют функционал расширения в приложении Quasar. Файл
boot может подключать плагины, глобальные компоненты, методы или
директивы.
Пример использования boot-файла:
// boot/index.js
import { Notify } from 'quasar';
export default ({ app, router, store }) => {
app.config.globalProperties.$notify = Notify;
};
Здесь объект app предоставляет доступ к глобальному
экземпляру Vue, что позволяет регистрировать компоненты и плагины
напрямую.
Манифест позволяет указывать компоненты и директивы, доступные для использования в проекте без ручной регистрации. Это удобно для создания наборов UI-элементов или кастомных директив.
components: [
'MyButton',
'MyCard'
],
directives: [
'MyTooltip',
'MyScroll'
]
Каждый компонент должен быть экспортирован из соответствующего файла внутри пакета расширения.
Расширение может добавлять свои плагины или изменять конфигурацию
Quasar. Это делается через метод extendQuasarConf в
манифесте:
api.extendQuasarConf((conf) => {
conf.framework.config.notify = { position: 'top-right', timeout: 3000 };
});
Также можно добавлять новые маршруты, изменять тему или подключать дополнительные модули.
prompts)Поле prompts позволяет создавать интерактивные диалоги
при установке расширения. Это особенно полезно для выбора настроек или
активации определённых функций:
prompts: {
useFeatureX: {
type: 'confirm',
message: 'Хотите активировать Feature X?',
default: true
}
}
Ответы пользователя могут быть использованы для динамического конфигурирования расширения.
Через поле extends можно наследовать функционал другого
расширения. Это позволяет создавать цепочку расширений и повторно
использовать общие части:
extends: 'some-existing-extension'
При этом все компоненты, плагины и boot-файлы базового расширения автоматически подключаются к текущему проекту.
@quasar/.Манифест расширения является ядром любого пакета Quasar, обеспечивая интеграцию компонентов, директив, плагинов и пользовательских настроек. Грамотно оформленный манифест позволяет создавать расширения, которые легко устанавливаются, конфигурируются и масштабируются в крупных проектах.