私は次のようなものを見たいくつかのケースに気づきました:
// /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'
を呼び出す最後の「ファイル」に注意してください-これは、index.jsファイルからdefault export
をインポートする必要があると信じているようです。
これは実際に仕様の一部ですか? -私の解釈/質問は、これがimport
ステートメントをCommonJSスタイルのrequires
ステートメントに変換するWebPack v1を使用する多くの人々の結果であるということですか?または、これは「公式」import
/export
をサポートするWebPack v2で壊れますか?
これは実際に仕様の一部ですか?
いいえ。モジュール識別子('./reducers'
あなたの場合)は、実際のモジュールに解決されるのは、モジュールローダー/バンドラーの実装に任されています。ES6によって特定されていません。また、 CommonJs でも指定されていないようです。
これは、ノードが行う方法です。ディレクトリが必要な場合は、index.js
ファイルが使用されます。 browserify または webpack などのバンドラーは、この規則に従いました(互換性のため)。