问题
es6语法中的解构赋值,在对于==import==引入的对象进行解构赋值时发现对象变成了undefined。
错误示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let foo = "foo" let bar = "bar" let obj = {foo, bar} export default obj
import { foo, bar } from "./static" console.log(foo) console.log(bar)
import obj from "./static" console.log(obj.foo) console.log(obj.bar) ————————————————
|
原因
export default语法在bebel转义后会丢失作用域,代码如下
1 2 3 4
| export default { host: 'localhost', port: 80 }
|
babel转译后
1 2 3 4
| module.exports.default = { host: 'localhost', port: 80 }
|
解决方案
1 2 3 4 5 6 7
| import { foo, bar } from "./static"
let foo = "foo" let bar = "bar" export { foo, bar }
|