导入语句和 Babel
Import statement and Babel
我使用来自 Facebook fbjs
的 keyMirror
定义了两个常量。
// file1.js
import keyMirror from 'fbjs/lib/keyMirror'
export default keyMirror({
CONST1: null,
CONST2: null,
})
然后将它们导入 file2.js
:
// file2.js
import { CONST1, CONST2 } from './file1'
console.log(CONST1) // undefined
他们的价值观无法解决。如果我像这样更改 file2.js
:
// file2.js
import constants from './file1'
console.log(constants.CONST1) // CONST1
它工作正常。它出什么问题了?我正在使用带有 babel-preset-es2015
到 运行 脚本的 Babel 6。
您的导入不匹配,如果导出 default
导出,则必须导入 default
。如果要使用 named
exports 导入,则需要使用 named
exports.
导出
对于
import { CONST1, CONST2 } from './file1'
要工作,你需要
export let {CONST1, CONST2} = keyMirror({
CONST1: null,
CONST2: null,
});
ES6 模块语法中 import
之后的 { CONST1, CONST2 }
与解构无关,因此您不应将其视为从默认导出中提取属性。相反,将其视为要从模块导入的名称列表。
您的解决方案可能适用于 Babel 5,但即便如此,它仍然无效。您可以查看 以获得更多解释。
每个 ES6 模块导出一组导出,default
为简单起见进行特殊处理。
import constants from './file1';
是
的缩写
import {default as constants} from './file1';
和
export default keyMirror({
CONST1: null,
CONST2: null,
})
本质上是
的缩写
var temp = keyMirror({
CONST1: null,
CONST2: null,
});
export {temp as default};
我使用来自 Facebook fbjs
的 keyMirror
定义了两个常量。
// file1.js
import keyMirror from 'fbjs/lib/keyMirror'
export default keyMirror({
CONST1: null,
CONST2: null,
})
然后将它们导入 file2.js
:
// file2.js
import { CONST1, CONST2 } from './file1'
console.log(CONST1) // undefined
他们的价值观无法解决。如果我像这样更改 file2.js
:
// file2.js
import constants from './file1'
console.log(constants.CONST1) // CONST1
它工作正常。它出什么问题了?我正在使用带有 babel-preset-es2015
到 运行 脚本的 Babel 6。
您的导入不匹配,如果导出 default
导出,则必须导入 default
。如果要使用 named
exports 导入,则需要使用 named
exports.
对于
import { CONST1, CONST2 } from './file1'
要工作,你需要
export let {CONST1, CONST2} = keyMirror({
CONST1: null,
CONST2: null,
});
ES6 模块语法中 import
之后的 { CONST1, CONST2 }
与解构无关,因此您不应将其视为从默认导出中提取属性。相反,将其视为要从模块导入的名称列表。
您的解决方案可能适用于 Babel 5,但即便如此,它仍然无效。您可以查看
每个 ES6 模块导出一组导出,default
为简单起见进行特殊处理。
import constants from './file1';
是
的缩写import {default as constants} from './file1';
和
export default keyMirror({
CONST1: null,
CONST2: null,
})
本质上是
的缩写var temp = keyMirror({
CONST1: null,
CONST2: null,
});
export {temp as default};