【发布时间】:2020-10-31 04:07:37
【问题描述】:
在 Nuxt 中使用第三方插件的正确方法是什么?我查阅了 Nuxt 插件文档,但它对我不起作用。
让我解释一下:
我正在尝试使用名为 Annotorious 的 JavaScript 图像注释库和 Annotorious 文档状态来使用插件,如下所示:
import { Annotorious } from '@recogito/annotorious';
const anno = new Annotorious({ image: 'hallstatt' }); // image element or ID
我创建了一个名为annotorious.client.js 的插件并将其放在我的plugins 文件夹中:
插件/annotorious.client.js
import Vue from 'vue'
import Annotorious from '@recogito/annotorious'
Vue.use(Annotorious) <-- am I supposed to be doing it like this?
然后,在
nuxt.config.js文件中我添加了:
plugins: ['~/plugins/annotorious.client.js'].
然后,在我的 Nuxt 页面中,我尝试像这样初始化插件:
<template>
...snip...
<img :id="photo.filename" :src="photo.url" />
...snip...
</template>
<script>
import Annotorious from '~/plugins/annotorious.client.js'
export default {
data() {
return {
photo: {},
anno: {}
}
},
async mounted() {
await this.getPhoto()
this.anno = new Annotorious({ image: this.photo.filename })
注意:在常规的 Vue 应用程序(使用 Vue-Cli 构建)中,一切正常。但是,一旦我尝试使用 Nuxt,我就会遇到问题。这是一个控制台错误:
vue.runtime.esm.js?2b0e:5106 Uncaught TypeError: Cannot read property 'install' of undefined
at Function.Vue.use (vue.runtime.esm.js?2b0e:5106)
at eval (annotorious.client.js?8beb:3)
at Module../plugins/annotorious.client.js (default~app.js:4509)
at __webpack_require__ (runtime.js:854)
at fn (runtime.js:151)
at eval (index.js:46)
at Module../.nuxt/index.js (default~app.js:203)
at __webpack_require__ (runtime.js:854)
at fn (runtime.js:151)
at Module.eval (client.js:49)
有人在我的代码中发现了什么吗?如何让这个工作?我会抛出一个代码框,但他们的 Nuxt 启动器坏了。感谢您的帮助!
【问题讨论】:
标签: nuxt.js