gpt4 book ai didi

javascript - Vue : use a custom libary (pdf. js) 在组件中

转载 作者:行者123 更新时间:2023-11-30 15:00:44 25 4
gpt4 key购买 nike

如何在 Vue 组件中使用 vendor 库(特别是我想使用 PDF.js)? (我只想为这个特定组件加载它,因为它们是相当大的文件)

我正在构建一个需要加载 pdf 的编辑器。所以我把 pdf.js 和 pdf.worker.js 放在了/src/assets/vendor/pdfjs

然后我在 template-editor-page.hbs 中同时加载组件:

<div class="content">
<div class="row fill">
<div class="col-md-2 fill br pt30">
</div>
<div class="col-md-10 fill pt30 pl30 pr30">
<div id="template-editor" class="template-editor">
<template-editor template-src="{{template.src}}"></template-editor>
</div>
</div>
</div>
</div>
<script src="/assets/js/template-editor.bundle.js"></script>
<script src="/assets/vendor/pdfjs/pdf.js"></script>
<script src="/assets/vendor/pdfjs/pdf.worker.js"></script>

我的 template-editor.js(我必须在这里加载它吗?):

import Vue from 'vue';
import templateEditor from './components/template-editor.vue';

new Vue({
el: '#template-editor',
components: { templateEditor }
});

现在我想在我的 template-editor.vue 中加载文件:

<template>
<!-- ... -->
</template>

<script>

export default {
props: ['templateSrc'],
name: 'template-editor',
data() {
return {
src: this.templateSrc
};
},
methods: {
render() {
PDFJS.getDocument(this.$data.src).then(function(pdf) {
console.log(pdf);
}, err => console.log(err));
}
},
created: function() {
this.render();
}
};
</script>

但是我得到一个错误提示

ReferenceError: PDFJS is not defined

其他一切似乎都很好。我错过了什么?

最佳答案

我认为您的组件中缺少的只是一个 import 语句,

更正在下面的导入位置尝试使用“@”。我忘了,您的组件可能位于“src”的子文件夹中。另请参阅下面有关 pdfjs-dist 的注释。

<script>
import { PDFJS } from '@/assets/vendor/pdfjs/pdf.js'

export default {
props: ['templateSrc'],
name: 'template-editor',
...

备选

因为你有 webpack,你最好将 pdfjs-dist 安装到节点模块中(参见 pdfjs-dist ),然后将其从 './assets/vendor/pdfjs/pdj.js' 中删除

npm install pdfjs-dist

如果这样做,导入会更“标准”,

import { PDFJS } from 'pdfjs-dist'

关于javascript - Vue : use a custom libary (pdf. js) 在组件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com