使用 ES2015 语法,我们有了新的导入语法,我一直在尝试弄清楚如何将一个文件中导出的所有内容无需包装成对象,就可以直接导入到另一个文件中,就好像它们是在同一个文件中定义的。
因此,实际上就是这样:
// constants.js
const MYAPP_BAR = 'bar'
const MYAPP_FOO = 'foo'
// reducers.js
import * from './constants'
console.log(MYAPP_FOO)
根据我的Babel/Webpack设置,这种语法无效。
替代方案
以下方法有效(但如果需要导入多个内容,则很冗长且烦人):
// reducers.js
import { MYAPP_BAR, MYAPP_FOO } from './constants'
console.log(MYAPP_FOO)
这样做也可以(但它将常量包装在对象中):
// reducers.js
import * as consts from './constants'
console.log(consts.MYAPP_FOO)
第一种变量的语法是否存在,还是必须按名称导入每个变量,或者使用包装对象?
import * from
是可能的。如果reducers.js
包含一个变量MYAPP_FOO
会发生什么?或者如果另一个模块也包含MYAPP_FOO
会怎样?还有很多需要考虑的地方。这不是一个好主意。 - a better oliver