Интеграция ObservableHQ в Vue.js компонент

#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. Нет, я пытался загрузить все локально, но ситуация та же.