2

I'm trying to dynamically import a module. But I'm not able to figure it out, how to export it correctly.

const calendarLocale = async () => await import(`./lang/calendar/${lang}`);

const messages = {
    [lang]: {
      ...calendarLocale()
    }
}

export default new VueI18n({
   locale: lang, // set locale
   messages, // set locale messages
});

Because it's asynchronous the value in messages is always empty.

Philipp Mochine
  • 4,351
  • 10
  • 36
  • 68

1 Answers1

3

This is not possible - it would require top-level await, which currently is a proposal only.

All you can do is export a promise:

export default import(`./lang/calendar/${lang}`).then(calendarLocale => new VueI18n({
   locale: lang, // set locale
   messages: {
     [lang]: calendarLocale
   }, // set locale messages
}));
Bergi
  • 630,263
  • 148
  • 957
  • 1,375