【发布时间】:2018-12-07 12:43:36
【问题描述】:
由于某种原因,我无法使用导出为 es6 模块的数组:
export const choices = [
['first', 'First'],
['second', 'Second'],
['third', 'Third'],
]
然后:
import { choices } from './constants'
console.log(choices) // undefined
如果我只是在我尝试使用它的同一文件中声明const,它会按预期工作。
【问题讨论】:
-
该代码很好(除了依赖 ASI :-)),并且在 Chrome 中为我工作(如果我将
.js添加到导入中)。你在什么环境下做这个?你在使用某种捆绑器吗? -
您的问题发生在 Jest 上吗?
-
你是对的 - 添加
.js可以解决这个问题。我通过 Facebook 的 create-react-app 使用 React。我的组件、类、函数和对象都可以在不指定文件扩展名的情况下导入。 -
奇怪的是,如果我将文件名从
constants更改为helpers,它可以工作。constants是 javascript 或 es6 中的受保护词吗?我知道const可能是相关的.. -
@Toby - 不,
constants在 JavaScript 本身中不受保护。也许你的加载器配置中有一些东西,或者你有一些其他constants.x文件在你的网络服务器配置中具有优先级。在这种情况下,我希望 Web 控制台中出现错误消息,而不是记录undefined。
标签: javascript ecmascript-6 es6-modules