Для публикации пакета на npm необходимо корректно подготовить проект.
Первым шагом является создание файла package.json, который
содержит метаданные проекта: имя пакета, версию, описание, ключевые
зависимости и скрипты сборки. В Quasar проекты создаются через CLI
командой quasar create <project-name>, после чего
можно адаптировать package.json под npm-публикацию.
Основные поля для публикации:
name – уникальное имя пакета в npm. Не
должно содержать пробелов, использовать только строчные буквы, дефисы
или символы подчеркивания.version – версия пакета по семантическому версионированию.main – точка входа для CommonJS,
обычно dist/index.cjs.js.module – точка входа для ES-модулей,
например dist/index.esm.js.files – массив файлов или папок,
которые будут включены в публикацию. Рекомендуется указывать только
необходимые файлы, исключая исходники тестов и конфигурации.scripts – скрипты сборки и подготовки
пакета, например:"scripts": {
"build": "quasar build",
"prepublishOnly": "npm run build"
}
Quasar по умолчанию ориентирован на создание приложений, но поддерживает создание библиотек. Важно подготовить сборку так, чтобы она была совместима с различными системами модулей:
quasar.conf.js В
quasar.conf.js указывается экспортируемая библиотека:build: {
vueRouterMode: 'hash',
extendWebpack(cfg) {
cfg.output.libraryTarget = 'umd';
},
env: {
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
}
}
Выбор формата сборки Для npm рекомендуется
использовать UMD (универсальный модуль) или ESM (ES Modules). UMD
позволяет подключать библиотеку в браузере через тег
<script> или через Node.js, а ESM облегчает
интеграцию с современными сборщиками вроде Webpack или Vite.
Подготовка файлов для публикации Обычно в
dist/ попадает уже минифицированная версия библиотеки.
Следует включить в package.json только необходимые файлы
через поле "files":
"files": [
"dist/",
"README.md",
"LICENSE"
]
Перед загрузкой на npm важно убедиться, что пакет работает корректно:
npm pack для
создания .tgz архива.npm install ../<package-name>-<version>.tgz.Дополнительно рекомендуется проверять работу с разными версиями Vue, если библиотека зависит от конкретной версии Quasar.
Для публикации используется команда:
npm publish --access public
Особенности:
"private": true в package.json
запрещает публикацию, необходимо его удалить или установить
false.@scope/package-name) требуется
использовать --access public.package.json и повторить публикацию.Немаловажно правильно управлять версиями пакета:
Для автоматизации можно использовать
npm version <major|minor|patch>, что одновременно
обновляет package.json и создает Git-тег.
Поле README.md должно содержать:
npm install <package-name>
Дополнительно можно указать поле "keywords" для
улучшения поиска пакета на npm и "license" для корректного
указания лицензии.
Если библиотека включает компоненты Quasar, следует обеспечить:
import в библиотеке.Корректная организация структуры модулей позволяет интегрировать библиотеку в приложения без конфликтов и избыточного кода.
Для автоматизации публикации пакета можно использовать GitHub Actions или другие CI/CD системы:
quasar build.Такой подход минимизирует риск публикации некорректного пакета и ускоряет процесс обновлений.
Пример рекомендуемой структуры:
my-quasar-lib/
├─ src/
│ ├─ components/
│ └─ index.js
├─ dist/
├─ package.json
├─ quasar.conf.js
├─ README.md
└─ LICENSE
Эта структура обеспечивает ясность, поддерживает модульность и соответствует стандартам npm для библиотек на базе Quasar.