将数据从nuxt模块传递到插件

时间:2019-09-02 11:21:03

标签: javascript vue.js nuxt.js nuxt

我正在尝试将从模块选项中获得的数据传递给插件。所以说这是我的模块:

module.exports = function (moduleOptions) {
  const options = {
    ...this.options.moduleName,
    ...moduleOptions
  }


  this.addPlugin({
    src: resolve(__dirname, 'plugin.js'),
    options
  })
}

这是我的插件

import { createStore } from 'lib';

export default async ({ store, app }) => {
  const settings = {
    axios: app.$axios,
    models: <% options.models %>
  }

  settings.axios = app.$axios;

  createStore(settings).install()(store)
};

这是我的配置

const { resolve } = require('path')

module.exports = {
  rootDir: resolve(__dirname, '..'),
  buildDir: resolve(__dirname, '.nuxt'),
  srcDir: __dirname,
  render: {
    resourceHints: false
  },
  modules: [
    'moduleName'
  ],
  moduleName: {
    { models: require(resolve(__dirname, '../example/models')) }
  }
}

它抛出

axios: app.$axios,
       7 |     models:
    >  8 |   }

模型只是空的,后面没有任何东西。没有空,没有未定义。

但是,如果我执行<% console.log(options.models) %>,它将显示我已加载的模型。 Btw模型只是一组类。

这些模型必须是可配置的,那么如何通过模块将这些数据从nuxt.config.js传递到插件?

希望有人知道:)

1 个答案:

答案 0 :(得分:0)

我已经在插件中使用了require而不是在配置中解决了这个问题。