我注意到在一些案例中我看到过类似以下内容:
// /reducers/reducer1.js
export default function reducer1(state = {}, action){
// etc...
}
// /reducers/reducer2.js
export default function reducer2(state = {}, action){
// etc...
}
// /reducers/index.js
import { combineReducers } from 'redux';
import reducer1 from './reducer1';
import reducer2 from './reducer2';
export default combineReducers({
reducer1,
reducer2
})
// /store.js
import masterReducer from './reducers';
export default function makeStore(){
// etc...
}
注意我们调用的最后一个“文件”import masterReducer from './reducers'
- 一些人似乎认为这应该导入default export
来自index.js 文件。
这实际上是规范的一部分吗? - 我的解释/问题是,这是许多人使用 WebPack v1 的结果,它翻译import
语句转换为 CommonJS 风格requires
声明?或者这会破坏 WebPack v2 中的“官方”import
/export
支持?
这实际上是规范的一部分吗?
编号如何模块标识符('./reducers'
在你的情况下)解析为实际模块留给模块加载器/捆绑器的实现,ES6没有指定它。而且似乎没有指定CommonJs http://wiki.commonjs.org/wiki/Modules either.
这就是节点的做法 - 当需要目录时,它是index.js
将使用文件。捆绑者喜欢浏览器化 https://github.com/substack/node-browserify#packagejson or webpack https://webpack.github.io/docs/resolving.html#resolving-an-absolute-path遵循此约定(出于兼容性原因)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)