В экосистеме Quasar Framework расширения (Extensions) позволяют добавлять функциональные возможности к проекту без изменения основной структуры приложения. Каждое расширение организуется как самостоятельный пакет с определённой структурой файлов и обязательными элементами.
package.json Содержит метаданные расширения:
name — уникальное имя расширения в формате
@scope/name или просто name.version — версия пакета, соответствующая семантическому
версионированию.quasar — ключ, определяющий конфигурацию расширения для
Quasar CLI.dependencies и devDependencies —
зависимости, необходимые для работы расширения и его сборки.Пример minimal package.json:
{
"name": "my-quasar-extension",
"version": "0.1.0",
"quasar": {
"id": "my-extension",
"boot": "boot/index.js"
},
"dependencies": {},
"devDependencies": {}
}
boot/index.js или boot/index.ts. Boot-файл
выполняется при инициализации Quasar приложения и служит точкой
подключения логики расширения, например, регистрации компонентов или
плагинов.export default ({ app, router, store, Vue }) => {
Vue.prototype.$myExtension = {
log(message) {
console.log(`[MyExtension]: ${message}`);
}
}
}
Компоненты и утилиты Расширение может содержать:
Структура каталога может выглядеть так:
my-quasar-extension/
├─ boot/
│ └─ index.js
├─ components/
│ ├─ MyButton.vue
│ └─ MyDialog.vue
├─ composables/
│ └─ useFeature.js
├─ utils/
│ └─ helper.js
└─ package.json
quasar.extensions.json. Она описывает параметры расширения,
доступные для настройки при установке:{
"prompts": [
{
"name": "enableFeatureX",
"type": "confirm",
"message": "Включить Feature X?"
}
]
}
Vue.component или
экспортироваться для импорта пользователем.quasar ext add <extension-name>. CLI
выполняет скрипт index.js расширения, проверяет зависимости
и применяет конфигурацию.Эта структура обеспечивает модульность, повторное использование и простоту интеграции расширений в Quasar-проекты, позволяя создавать мощные и легко масштабируемые приложения.