【发布时间】:2020-10-15 18:29:25
【问题描述】:
我在 Nuxt 插件中导入 Vuetify.js,我想让其他插件可以访问它。 我尝试将其直接分配给vuetify-module 之类的上下文。
vuetify.js
import Vue from 'vue'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
import options from '@/vuetify.options.js'
import '@mdi/font/css/materialdesignicons.css'
Vue.use(Vuetify, {...options})
export default ctx => {
const vuetify = new Vuetify(options)
ctx.app.vuetify = vuetify
ctx.$vuetify = vuetify.framework
}
nuxt.config.js
module.exports = {
...
plugins: [
'@/plugins/vuetify'
],
...
}
但我总是得到一个undefined 值...
plugin.js
export default function (ctx, inject) {
console.log('app.vuetify :', ctx.app.vuetify) // undefined
console.log('$vuetify :', ctx.$vuetify) // undefined
}
我也尝试过使用inject 中的post 方法,但后来我得到了Type Error : Cannot set property $vuetify of #<Vue> which has only a getter。
vuetify.js
export default function(_, inject) {
const vuetify = new Vuetify(options)
inject('vuetify', vuetify)
}
注意:我使用addPlugin 方法在模块中注册插件。
module.js
module.exports = function (moduleOptions) {
this.addPlugin({
fileName: 'myplugin.js',
moduleOptions,
src: resolve(__dirname, 'plugin.js'),
mode: 'client'
})
}
【问题讨论】:
-
@MajidZarrin 这个模块不是maintained since a while,我需要最新的 vuetify 版本。
-
没有上下文你可以用
this.$vuetify获得vuetify -
@Jazuly 我需要 nuxt 的上下文,因为我想在其他插件中访问 vuetify。
标签: javascript plugins nuxt.js vuetify.js