ESLint плагины: pinia
Хранилища (далее сторы) в Pinia — это основа архитектуры любого Vue-приложения. Но чем больше проект, тем сложнее следить за тем, чтобы все defineStore были реализованы одинаково, не было дублирующихся id, а свойства явно экспортировались.
eslint-plugin-pinia поможет автоматизировать эти проверки: после подключения в ESLint плагин найдет потенциальные ошибки, несогласованный стиль и архитектурные несоответствия в ваших stores.
Установка
bash
npm install --save-dev eslint-plugin-piniajs
// eslint.config.js
import piniaPlugin from "eslint-plugin-pinia";
export default [
// ...
piniaPlugin.configs["all-flat"]
];Что проверяет?
Правила покрывают самые частые ошибки:
never-export-initialized-store— запрещает экспортировать результатdefineStore(), только саму функцию.no-duplicate-store-ids— проверка уникальности id у всехdefineStore.no-return-global-properties— запрет возвратаinject,useRouter,useRouteиз стора напрямую.no-store-to-refs-in-store—storeToRefs()не должны использоваться внутриdefineStore.prefer-single-store-per-file— один файл должен содержать один стор. Отключено по умолчаниюprefer-use-store-naming-convention— названия сторов должны начинаться сuse:useCartStore,useUserStore, и т.д. Отключено по умолчаниюrequire-setup-store-properties-export— все свойстваstateв setup-сторе должны быть экспортированы.
Итог
Если вы используете Pinia — этот небольшой плагин поможет избежать многих архитектурных проблем ещё на этапе написания кода. Особенно пригодится в командной работе: сторы будут оформлены единообразно, код станет предсказуемым, а ревью — быстрее и проще.
