首页 > 解决方案 > 创建生产版本时出错“不包含默认导出”

问题描述

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').

我正在导入这样的文件:

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;

标签: reactjsreact-intlreact-scripts

解决方案


尝试这个...

// ./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" />


推荐阅读