首页 > 解决方案 > 将数据从 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) %>,它将显示我已加载的模型。顺便说一句,模型只是一个类数组。

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

希望有人知道:)

标签: javascriptvue.jsnuxt.js

解决方案


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


推荐阅读