У меня есть приложение vue, которое так структурировано (автоматически создано vue init webpack myProject:
index.html
components/
-main.js
-App.vue
Я хочу иметь возможность включать пакеты npm. Например, https://github.com/ACollectionOfAtoms/atomic-bohr-model. Следуя инструкциям, я запустил npm install atomic-bohr-model --save и включил
<script type = "text/javascript" src = "./node_modules/atomic-bohr-model/dist/atomicBohrModel.min.js" charset = "utf-8"></script>
в моем файле index.html. Чтобы использовать пакет, согласно странице github, мне нужно запустить некоторый javascript,
var atomicConfig = {
containerId: "#bohr-model-container",
numElectrons: 88,
idNumber: 1
}
var myAtom = new Atom(atomicConfig)
который запускается с соответствующим элементом: <div id = "bohr-model-container"></div>. Итак, я сделал следующее внутри одного компонента, который отображается в App.vue:
<template>
<div id = "bohr-model-container" style = "width: 200px; height: 200px"></div>
</template>
<script>
var atomicConfig = {
containerId: '#bohr-model-container',
numElectrons: 88,
idNumber: 1,
};
var myAtom = new Atom(atomicConfig);
export default {
name: 'myComponent'
};
</script>
Проблема в том, что когда я пытаюсь запустить приложение, я получаю пустую белую страницу. Строка var myAtom = new Atom(atomicConfig); нарушает работу приложения. Почему это происходит? Я предполагаю, что Atom не определен в сценарии моего компонента. Могу ли я импортировать что-нибудь в первой строке?
Почему это не работает так же, как пример приложения, предоставленный для пакета npm, который работает только с использованием простых файлов html и js? Простите за неопытность, я новичок в фреймворках javascript. Заранее спасибо.
Как мне его импортировать? Я привык к строке импорта, представленной в инструкциях github, извините, что спросил



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как правило, чтобы импортировать модули npm в проект Webpack, npm-install пакет, а затем import или require модуль в вашем коде. Например:
import _ from 'lodash';
// OR
const _ = require('lodash');
В вашем случае atomic-bohr-model только объявляет window.Atom и не экспортирует никаких символов, поэтому вам нужно импортировать его следующим образом:
import 'atomic-bohr-model/dist/atomicBohrModel.min.js'; // sets window.Atom
// OR
require('atomic-bohr-model/dist/atomicBohrModel.min.js'); // sets window.Atom
И тогда ваш компонент будет использовать window.Atomвнутри ловушки жизненного цикла mounted, после чего шаблон будет отрисован и #bohr-model-container станет доступным:
<template>
<div id = "bohr-model-container" style = "width: 200px; height: 200px"></div>
</template>
<script>
import 'atomic-bohr-model/dist/atomicBohrModel.min.js';
export default {
mounted() {
new window.Atom({
containerId: '#bohr-model-container',
numElectrons: 88,
// ...
});
}
};
</script>
просто импортируйте его вместо того, чтобы включать его, используя <script src>