Home

Issue: 1235

loading order for plugins, dependent on other plugins

[issue link]

My module is creating plugin that dependent on @nuxtjs/axios plugin and I want to set interceptors on axios during my plugin initialization, but seems like axios is not yet processed. How to specify order of plugins?

// save headers in vuex, cookies and update axios headers
const setAuthDataFromResponse = store => response => {
  const authData = getAuthDataFromResponse(response)
  store.dispatch('setAuthData', authData)
}

export default (ctx) => {
  const { app, store } = ctx
  // create store
  store.registerModule('auth', auth)

  console.log(app.$axios) // but they are all are undef
  console.log(store.$axios)
  console.log(ctx.$axios)

  // set interceptors
  const setter = setAuthDataFromResponse(store)
  store.$axios.interceptors.response.use(resp => {
    setter(resp)
    return resp
  }, error => {
    setter(error)
    return Promise.reject(error)
  })
}

  plugins: [
     ...
  ],
  modules: [
      ...
    ['@nuxtjs/axios', { baseURL: apiURL, debug: process.env.NODE_ENV !== 'production' }],
    'auth-devise'
  ],

plugin_so_far, app_too

This question is available on Nuxt.js community (#c1089)