Я не знаю, понимаю ли я на 100 процентов, насколько я знаю, это возможно. Неважно, как вы связываете свое приложение. Это вопрос архитектуры. Вы можете использовать vue.js частично, как виджет.
Сначала, когда вы устанавливаете экземпляр Vue, просто установите элемент с вашим целевым элементом.
new Vue({
el: '#my-widget'
});
Если вы хотите, чтобы ваш клиент сам установил элемент, сделайте несколько функций для создания vue widget. (с учетом множественного экземпляра vue или совместного использования состояния, бла-бла ...)
// you can provide simple function like this (I'm sure it needs to be more.)
const Widget = {
createWidget(el) {
new Vue({
el: el
});
}
};
// on client side
Widget.createWidget('#his-widget');
При связывании, если вы хотите, чтобы ваш виджет был связан с веб-сайтом клиента Drupal. Пусть он импортирует ваш виджет, как и другие библиотеки. Вы можете создать свой виджет с помощью npm run build
в vue-cli и затем передать его ему, чтобы он мог включить его.