# Nuxt Plugins

## Location
The definitions of plugins reside in `shell/plugins`. Plugins added to `shell/initialize/index.js` will be initialized at the start of the app rendering. 


## Notes
This file was generated by nuxt and will soon be redefined by hand. It's safe to add new plugins to this file.

## Pattern 
Define the store in a file that resides within `shell/plugins`. Then add the plugins import and execution to `shell/initialize/index.js`.

shell/plugins/version.js
```js
/**
 * Fetch version metadata from backend /rancherversion API and store it
 *
 * This metadata does not change for an installation of Rancher
 */

import { setVersionData } from '@shell/config/version';

export default async function({ store }) {
  try {
    const response = await store.dispatch('rancher/request', {
      url:                  '/rancherversion',
      method:               'get',
      redirectUnauthorized: false
    });

    setVersionData(response);
  } catch (e) {
    console.warn('Failed to fetch Rancher version metadata', e); // eslint-disable-line no-console
  }
}
```

shell/initialize/index.js
```js
...
import version from  '../plugins/version';
...
if (process.client && typeof version === 'function') {
   await version(app.context, inject);
}
...
```
/** 
  * Do we need this file???????
*/