NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Nuxt Module for pinia
Last release 1 months ago
12 Aug 2026
Release timing varies
gaps range from 2 weeks to 8 months
Most releases are documented
notes for 44 of 55 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
56 releases · first in 2021
One column per quarter.
nuxt : Declare Nuxt 5 compatibility - by @onmax in #3166 (a94de)
Re-add missing types exports field - by @rijkvanzanten in #3154 (fb217)
Upgrade devtools-api to v8 - by @posva (25572)
This version contain no major changes
This version fixes auto imports from layers which means that if you were writing something like this in options:
pinia: {
storesDirs: ['./app/stores/**'],
}
You now need to write
pinia: {
storesDirs: ['./stores/**'],
}
This is because app is itself a layer and now auto imports work across layers.
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix obj.hasOwnProperty in shouldHydrate
Nothing published for this version
This version requires Vue 3.0 and Pinia 3.0. See the migration guide for more information.
This version requires Vue 3.0 and Pinia 3.0. See the migration guide for more information.
This version requires at least Vue 2.7. On January 2025, Pinia 3.0 and @pinia/nuxt 1.0 will drop support for Vue 2 (which already reached EOL last yea
This version requires at least Vue 2.7. On January 2025, Pinia 3.0 and @pinia/nuxt 1.0 will drop support for Vue 2 (which already reached EOL last year). If you need support or help migrating, you can book help with Eduardo (@posva).
This release partially fixes a bug in production of:
Nothing published for this version
upgrade minimum version for nuxt kit (3dab0a6), closes #2814
Nothing published for this version
No changes in this release
No changes in this release
use correct pinia version range (c34c0b6), closes vuejs/pinia#2748
This release contain no code changes.
This release contain no code changes.
types: require unwrapped state in patch
opt in to import.meta.* properties
opt in to import.meta.* properties
$onAction (57d8503), closes #240The type property of the first parameter of store.$subscribe() has slightly changed. In most scenarios this shouldn't affect you as the possible values for type were including emojis (a bad decision...) and they are now using an enum without emojis. Emojis are used only in devtools to give a mental hint regarding the nature and origin of different events in the timeline.
In store.$subscribe()'s first argument, the storeName property has been deprecated in favor of storeId (This is not really a breaking change yet).
Nothing published for this version
This release only contains build related changes
This release only contains build related changes
This release only contains build related changes
This release only contains build related changes
support "types" condition in "exports" field
No changes in this release
No changes in this release
nuxt: Avoid recursive import from Nuxt #imports
nuxt: ensure pinia plugin is added before router
### Bug Fixes - nuxt: nuxt v3 compatibility
Update nuxt version and usage to rc.11
nuxt: compatibility with ^3.0.0-rc.9
nuxt: automatically add pinia types
store: getters now receive the state as their first argument and it's properly typed so you can write getters with arrow functions:
defineStore({
state: () => ({ n: 0 }),
getters: {
double: (state) => state.n * 2,
},
})
To access other getters, you must still use the syntax that uses this but it is now necessary to explicitely type the getter return type. The same limitation exists in Vue for computed properties and it's a known limitation in TypeScript:
defineStore({
state: () => ({ n: 0 }),
getters: {
double: (state) => state.n * 2,
// the `: number` is necessary when accessing `this` inside of
// a getter
doublePlusOne(state): number {
return this.double + 1
},
},
})
For more information, refer to the updated documentation for getters.
plugins: To improve the plugin api capabilities, pinia.use()
now receives a context object instead of just pinia:
// replace
pinia.use((pinia) => {})
// with
pinia.use(({ pinia, store }) => {})
Check the new documentation for Plugins!
Nothing published for this version
Note $nuxt is deprecated and shouldn't be used (cf the other breaking changes notes).
Please read the release notes if you are upgrading from a previous version.
$nuxt (4f1a514)autoImports option in module (42be2fc)$nuxt context (3e3041a)$nuxt in Nuxt 3 (67e5417)nuxt: $nuxt usage in stores defaults to type any unless
you install the @nuxt/types package. This is because that package is
quite heavy and can cause conflicts in projects not requiring it. Note
$nuxt is deprecated and shouldn't be used (cf the other breaking
changes notes).
nuxt: Starting on this version, @pinia/nuxt only works with
Nuxt 2 + Bridge and Nuxt 3, it no longer works with Nuxt 2 only. This is
necessary to have one single plugin that works well with the different
versions of Nuxt. If you aren't using bridge with Nuxt 2, check out the
migration guide or pin your
@pinia/nuxt dependency in your:
- "@pinia/nuxt": "^0.2.1",
+ "@pinia/nuxt": "0.2.1",
The $nuxt context usage should be replaced with globals like
$fetch() and useNuxtApp(). You can find more information about this
in Nuxt documentation:
nuxt: in Nuxt 3, $nuxt is no longer available in stores.
This is because it was removed in Nuxt 3 and it is no longer the
context as it used to be. Most of the features used there, like
$fetch are now globally available and therefore remove the need of it.
You can also use
useNuxtApp()
when necessary.
Nothing published for this version
nuxt: add back the nuxtState (0f68174), closes #1447
files in dist folder are renamed to match official libs in the Vue ecosystem. Unless you were importing from pinia/dist, this won't affect you.
It's now necessary to create a pinia instance and install it:
import { createPinia, PiniaPlugin } from 'pinia'
const pinia = createPinia()
Vue.use(PiniaPlugin)
new Vue({
el: '#app',
pinia,
// ...
})
The pinia instance can be passed to useStore(pinia) when called
outside of a setup() function. Check the SSR section of the docs for
more details.
setActiveReq() and getActiveReq() have been
replaced with setActivePinia() and getActivePinia() respectively.
setActivePinia() can only be passed a pinia instance created with
createPinia().
Since req as a parameter was replaced with pinia,
getRootState is no longer necessary. Replace it with
pinia.state.value to read and write the root state`.
PiniaSsr is no longer necessary and has been removed.
state property on the store, you need to directly access it. getters no longer receive parameters, directly call this.myState to read state and other gettersNothing published for this version
Update build tools
Update build tools
Override the 0.1.7 version for convenience but no code changes since 0.1.6.
Override the 0.1.7 version for convenience but no code changes since 0.1.6.
No code updates in this release
No code updates in this release
Upgrade dependencies
Upgrade dependencies
### Performance Improvements - install plugins only once
### Bug Fixes - workaround prod build bug
install vue composition api for vue 2
### Bug Fixes - nuxt: correct build export
### Bug Fixes - nuxt: migrate to unbuild (#765) (e8ccb71) - nuxt: use @nuxt/kit (#764) (3d6d3cb) # 0.1.0 (2021-10-25) - Adapt paths of dist files
Nothing published for this version
### Bug Fixes - correct deps in nuxt plugin (8020f99) - correct peer deps and deps (c83677a) - should work with nuxt
### Bug Fixes - expose the plugin in mjs
### Bug Fixes - nuxt3: Rename app to vueApp (#731) (f78c289) - transpile pinia for nuxt 2
### Bug Fixes - link to correct file [skip ci]
nuxt: deprecate context.pinia in favor of context.$pinia
nuxt: use latest nuxt kit (4892546), closes #717
export the module version in mjs
### Features - add typedoc
nuxt: nuxt plugin working with Vue 2
Your coding agent can read these notes before it upgrades. Set up the MCP server →