簡體   English   中英

錯誤 - “無法找到模塊 ./en.json”使用 vue-i18n 插件

[英]Error - "Cannot find module ./en.json" using vue-i18n plugin

我有一個現有的 Vue 項目,我正在使用i18n插件為其添加本地化。 一切都安裝正確,根據我讀過的所有內容(請參閱此處),我已正確安裝所有內容。 這包括/src/locales下每個語言環境的一個文件,文件名是語言環境的名稱 ( /src/locales/en.json )。

/src/i18n.js文件的內容是:

import Vue from 'vue';
import VueI18n from 'vue-i18n';

Vue.use(VueI18n);

function loadLocaleMessages() {
  const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i);
  const messages = {};
  locales.keys().forEach((key) => {
    const matched = key.match(/([A-Za-z0-9-_]+)\./i);
    if (matched && matched.length > 1) {
      const locale = matched[1];
      messages[locale] = locales(key);
    }
  });
  return messages;
}

export default new VueI18n({
  locale: process.env.VUE_APP_I18N_LOCALE || 'en',
  fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',
  messages: loadLocaleMessages(),
});

loadLocaleMessages()的錯誤是在loadLocaleMessages()內部,它試圖加載/src/locales/.json文件。 我在調試器中逐步完成,然后在

messages[locale] = locales(key);

它拋出錯誤

Cannot find module './en.json'

其中key = ./en.jsonlocale = en

據我所知,我做的一切都是正確的。 我錯過了什么導致此錯誤?

好吧,盡管承認這一點很尷尬,但問題一直是我的en.json文件中的尾隨逗號。 我有

{
  "message": "hello i18n !!",
}

代替

{
  "message": "hello i18n !!"
}

可能是因為我太習慣在我的 JS 代碼中強制使用尾隨逗號。

當所有其他方法都失敗時,請注意 IDE 中的編譯錯誤...

我有同樣的錯誤,但因為我創建了 Json 文件但從未放置任何內容。

以防萬一它也發生在你身上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM