使用 Vite 时如何在函数中导入文件(Vue 3、Nuxt 3)

How to import files inside functions when using Vite (Vue 3, Nuxt 3)

提问人:CBD 提问时间:11/15/2023 更新时间:11/15/2023 访问量:24

问:

我有一个问题。

关于从 Vue 2 => Vue 3 和 Nuxt 2 => Nuxt 3 的迁移,以及 Vite 的新用法, 不再支持函数 require()。

我必须迁移这个需要根据语言提交文件的函数,但我看到不可能在 javascript 函数中使用句子“import”。

在这种情况下,我可以应用哪种解决方案?

    export function getTranslationsByKey(key) {
      const locales = LOCALES.map((locale) => {
        const file = require('./' + locale.iso + '/index.js')
    
        return {
          [locale[key]]: { ...file },
        }
  })
文件 导入 vuejs3 需要 nuxt3

评论


答:

1赞 Waleed Tariq 11/15/2023 #1

您可以使用动态导入来代替require

下面是一个示例:

export async function getTranslationsByKey(key) {
  const locales = await Promise.all(
    LOCALES.map(async (locale) => {
      const file = await import(`./${locale.iso}/index.js`);
      return {
        [locale[key]]: { ...file },
      };
    })
  );

  return locales;
}