@blouflashdb/eslint-plugin-pinia

ESLint plugin for Pinia best practices
4,210 1
Install
npm install @blouflashdb/eslint-plugin-pinia
Latest Version:0.0.2
License:MIT
Last Updated:Nov 10, 2025
Links: GitHub  ·  npm
Maintainer: blouflashdb

eslint-plugin-pinia

Eslint plugin that enforces some best practices for writing pinia stores

Installation

You'll first need to install ESLint:

npm i eslint --save-dev

Next, install @blouflashdb/eslint-plugin-pinia:

npm install @blouflashdb/eslint-plugin-pinia --save-dev

Usage

With @antfu/eslint-config

This plugin is designed to work seamlessly with @antfu/eslint-config:

// eslint.config.mjs
import antfu from '@antfu/eslint-config'
import pinia from '@blouflashdb/eslint-plugin-pinia'

export default antfu(
  {
    vue: true,
  },
  {
    plugins: {
      pinia,
    },
    rules: {
      'pinia/never-export-initialized-store': 'error',
      'pinia/no-duplicate-store-ids': 'error',
      'pinia/no-return-global-properties': 'error',
      'pinia/no-store-to-refs-in-store': 'error',
      'pinia/prefer-use-store-naming-convention': 'warn',
      'pinia/require-setup-store-properties-export': 'error',
    },
  },
)

Flat Config (eslint.config.js)

Add pinia to the plugins section and configure the rules you want to use:

// eslint.config.mjs
import pinia from '@blouflashdb/eslint-plugin-pinia'

export default [
  {
    plugins: {
      pinia,
    },
    rules: {
      'pinia/never-export-initialized-store': 'error',
      'pinia/no-duplicate-store-ids': 'error',
      'pinia/no-return-global-properties': 'error',
      'pinia/no-store-to-refs-in-store': 'error',
      'pinia/prefer-use-store-naming-convention': 'warn',
      'pinia/require-setup-store-properties-export': 'error',
    },
  },
]

Rules

Name Description
never-export-initialized-store Never export an initialized named or default store.
no-duplicate-store-ids Disallow duplicate store ids.
no-return-global-properties Disallows returning globally provided properties from Pinia stores.
no-store-to-refs-in-store Disallow use of storeToRefs inside defineStore
prefer-single-store-per-file Encourages defining each store in a separate file.
prefer-use-store-naming-convention Enforces the convention of naming stores with the prefix use followed by the store name.
require-setup-store-properties-export In setup stores all state properties must be exported.

Licence

MIT

Related Packages

eslint-plugin-pinia

ESLint plugin for Pinia best practices

776,538 38
eslint-plugin-vue

Official ESLint plugin for Vue.js

266,364,830 4,591
@vue/eslint-plugin

Official ESLint plugin for Vue.js

19,937 4,591
@sharkykh/eslint-plugin-vue-extra

ESLint plugin, extension for eslint-plugin-vue

15,653 0
eslint-config-ecollect-vue

eCollect's Vue.js style-guide and lint rules.

3,204 0

Version History

Version Released License
0.0.2 MIT
0.0.1 MIT