i18next создает несколько экземпляров, когда не требуется - PullRequest
0 голосов
/ 06 ноября 2019

На моей работе мы создаем наши собственные библиотеки, которые мы можем разделить между проектами. Библиотеки - это пакеты npm, которые мы размещаем на нашем gitlab. Мы используем главным образом машинописный текст и веб-пакет для их объединения и использования.

Теперь я буду обозначать библиотеки как «библиотеку», а также любой проект, который их использует (будь то WEB или мобильный)«потребитель».

Проблема, которую мы пытаемся выяснить, заключается в том, как мы можем использовать интернационализацию в этих проектах (i18next в этом отношении).

Внутри одного пакета, если выинициализируйте i18next (i18next.init(...)), вы можете вызвать его метод перевода и получить перевод. Поэтому мы подумали - мы могли бы включить i18next в нашу библиотеку, и он использовал бы инициализированный i18next и получить значение из файлов перевода.

В наших библиотеках мы устанавливаем i18next в качестве внешнего модуля, чтобы онне связывает его снова, когда мы его потребляем.

Я сделал пример и разместил его на github: https://github.com/leqwasd/i18nextIssuesInLibraries

Итак, проблема в том, что библиотека 1818 включена толькоОказавшись у потребителя, его экземпляр все еще является совершенно новым, когда библиотека пытается его использовать - i18next.t("key") работает в Consumer, но не работает в Library

Как я могу сделатьэто работает, так что моя библиотека использует экземпляр i18next основного потребительского проекта?

...