#javascript #vue.js #d3.js #data-visualization #observablehq
#javascript #vue.js #d3.js #визуализация данных #observablehq
Вопрос:
Моя проблема заключается в следующем:
Я пытаюсь заставить Vue.js и эта Наблюдаемая записная книжка должна существовать.
В частности, я хочу встроить эту записную книжку в свой компонент:
<template>
<div>
<div class="explainer"></div>
</div>
</template>
<script type="module">
import {Runtime, Inspector} from "../observablehq/sarscov2/runtime";
import define from "../observablehq/sarscov2/explainer";
export default {
mounted(){
(new Runtime).module(define, name => {
if (name === "explainer") return Inspector.into(".explainer")()
})
}
}
</script>
<style>
</style>
Теперь обратите внимание, что я использовал функцию встраивания в Observable site и выбрал ванильный вывод JS. Затем я создал этот скрипт и загрузил файлы js локально (насколько я знаю, Vue не разрешает удаленный импорт). Но результат следующий:
Без SVG.
Итак, заглянув внутрь скрипта, я обнаружил, что, возможно, проблема в том, что этот файл также пытается импортировать другой внешний ресурс, и по какой-то причине ему не разрешено это делать.
В заключение, как я мог решить эту проблему?
Комментарии:
1. привет, вы используете его внутри vue cli bundler?
2. как правило, требования к внешним библиотекам обрабатываются средой выполнения observablehq, однако есть несколько проблем с FileAttachments, я бы рекомендовал отредактировать исходный файл explainer в этой строке
const fileAttachments = new Map([["scientific@2.svg",new URL("./files/11a04038ef43c4009d7cdd028b92c4d361ff11ddf4060bb0ff73b1aa3ffb37c7fa88bd266bd65e70429eb395a1386971167e2e12260053510ef86fbace318508",import.meta.url)]])
. переместите svg в своюpublic
папку и отредактируйте его так, чтобыconst fileAttachments = new Map([["scientific@2.svg","/scientific@2.svg"]]);
он был у васscientific@2.svg
в вашей общей папке.3. Я попробую. Большое вам спасибо
4. Нет, я пытался загрузить все локально, но ситуация та же.