导出默认语法 Babel ES6

export default grammar Babel ES6

使用 Babel,我在导入以下模块时遇到问题:

// mongoose_helpers.js

const r_string = {
  type: String,
  required: true
}

const r_number = {
  type: Number,
  required: true
}

export default { r_string, r_number }

这样:

import { r_string, r_number } from './mongoose_helpers'

这会在我导入的文件中引发错误。

但是如果我这样做它会起作用:

const r_string = {
  type: String,
  required: true
}

(...)

const helpers = { r_string, r_number }

export default helpers

然后

import helpers from './mongoose_helpers'

只是好奇第一种方法有什么问题?

export default { r_string, r_number } 基本上是用两个键导出一个对象 (r_string, r_number)

它将与 import helpers from './mongoose_helpers'

一起使用

当你说 import { r_string, r_number } from './mongoose_helpers' 时,你是在告诉 JS 你想要从你的模块中导出两个 named exports。这不是解构语法。为了使用它,您需要像这样指定导出

export const r_string = ...
export const r_number = ...

ES6模块终极篇:http://www.2ality.com/2014/09/es6-modules-final.html