Ошибка при создании производственной сборки "не содержит экспорт по умолчанию" - PullRequest
4 голосов
/ 19 марта 2020

Hii Я работаю с языковым переводом, используя "react-intl": "^4.1.1",, но при создании производственной сборки код не компилируется и выдает ошибку об экспорте по умолчанию

Ошибка:

Creating an optimized production build...
Failed to compile.

./src/lang/entries/es_ES.js
Attempted import error: '../locales/es_ES' does not contain a default export (imported as 'enMessages').

I Я импортирую файл следующим образом:

import enMessages from '../locales/en_US';

Экспорт:

export default {
   "sidebar.dashboard" : "Dashboard"
}

Самое важное - это работа над локальными проблемами и создание проблем при создании производственной сборки, и я использую "react-scripts": "^3.3.0" в этом проекте. Как я могу решить эту проблему?

Обновление: После импорта enMessages

import endata from '@formatjs/intl-pluralrules/dist/locale-data/en';
import enMessages from '../locales/en_US';

const EnLang = {
   messages: {
      ...enMessages
   },
   locale: 'en-US',
   data: endata
};
export default EnLang;

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Попробуйте это ...

// ./src/lang/locales/en_US.js
export default {
   // We are trying to export a `key`, initiated as a String
-  "sidebar.dashboard" : "Dashboard",

   // let's treat sidebar/dashboard as plain keys
+  sidebar: {
+     dashboard: "Dashboard"
+  }
}

И рассмотрите возможность использования следующим образом ...

// ./src/lang/entries/es_ES.js
import enMessages from '../locales/en_US';

// Based on how you are using `enMessages`
+ export default { // best to use this to avoid `conflict` in later use
+  ...enMessages,  // destructure directly here
   locale: 'en-US',
   data: endata
};

// Use this for reference (though )
<Component id="sidebar.dashboard" />

0 голосов
/ 19 марта 2020

Ваш код выглядит нормально. Вы пробовали именованный экспорт?

/** ./src/lang/entries/es_ES.js */
import { enMessages } from '../locales/en_US

/** ./src/lang/locales/en_US.js */
export const enMessages = { "sidebar.dashboard" : "Dashboard" } 

Экспорт по умолчанию обычно плохая идея ... и неоднозначный. Что мешает кому-то импортировать, как это?

import esMessages from '../locales/en_US
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...