Vuex, webpacker и совместное использование состояния между несколькими пакетами

В настоящее время я работаю над проектом rails, где мы используем webpacker. Я хочу иметь возможность создавать небольшие динамические компоненты и объединять их в пакеты. Мы хотим иметь возможность использовать эти пакеты в качестве элементов в HTML-коде, отображаемом на стороне сервера. Хотя это работает (в настоящее время у нас есть пакет для каждого компонента), я не знаю, как лучше всего разделить хранилище vuex между этими пакетами. Я предполагаю, что это можно сделать через webpacker, но я не уверен.

ситуация например:

 dynamic_component_one data-id="abc"
 dynamic_component_two data-id="abc

 = javascript_pack_tag 'dynamic_component_one'
 = javascript_pack_tag 'dynamic_component_two'

В основном то, чего я хочу добиться, это то, что

dynamic_component_1 и dynamic_component_2 имеют общее хранилище vuex

Мое текущее решение существует из следующего и кажется очень хакерским. Я регистрирую конструктор Vue и Vuex Store в объекте глобального окна, чтобы повторно использовать их в разных пакетах.

const vuex_store = new Vuex.Store({
  strict: true
});

window['vue'] = Vue
window['vuex_store'] = vuex_store

если бы кто-нибудь мог указать мне в правильном направлении, я был бы очень признателен.


person Nicky Romeijn    schedule 18.10.2018    source источник
comment
Если я вас правильно понял, вы хотите разделить состояние vuex между двумя пакетами javascript - когда оба загружены. Это всегда будет немного хакерским. Ваше решение звучит хорошо для меня, потому что вам нужно выйти за пределы vue (то есть: js).   -  person Katinka Hesselink    schedule 18.10.2018
comment
Ага вы правильно поняли. Спасибо за ваш вклад! Мы думали, что, возможно, мы могли бы использовать плагин commonchunks для веб-пакета, чтобы справиться с распределением магазина по нескольким пакетам. Хотя пока не уверен, как это получится   -  person Nicky Romeijn    schedule 19.10.2018
comment
привет, Ники, ты когда-нибудь находил лучший способ для этого. У меня такая же потребность, но с реактивными пакетами   -  person masciugo    schedule 08.11.2019
comment
Привет @masciugo, я просто продолжал использовать способ, предложенный выше. Прикрепите хранилище к объекту окна и позвольте всем компонентам использовать его.   -  person Nicky Romeijn    schedule 12.11.2019