2016-02-16 7 views
30

index.js ile '/ klasöründen' dan ithal:javascript ben aşağıdaki gibi bir şey gördüm birkaç vakayı fark ettik

// /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... 
 
}

Bildirim geçen "Dosya" import masterReducer from './reducers''u aradığımız yer - Birkaç kişi bunun, default export dizin.js dosyasından içe aktarılması gerektiğine inanıyor.

Bu aslında belirtimin bir parçası mı? - Benim yorumum/soru, bu, çok sayıda kişinin, import ifadelerini CommonJS tarzı requires ifadelerine çeviren WebPack v1'i kullanmasının sonucu mu? Yoksa WebPack v2'de "resmi" import/export desteğiyle bu mola verilecek mi?

+0

Webpack ile emin değilim, ama babel kullanırsanız ifadeler –

+0

@SterlingArcher harika ismi (en sevdiğim şovlardan biri) gerektirecek şekilde aşağıya doğru kaydırmalısınız - [babel-preset'i kullanırsanız bu durumun geçerli olduğundan emin misiniz? -es2015-native-modules paket] (https://github.com/araphel/babel-preset-es2015-native-modules) (ön ayar 'es2015-native-modules' dir) - destek almak için kullandığınız ağaç WebPack 2 ile w/'import' ifadelerini sallayarak? – Jordan

+0

Derlenmemiştir, ancak [games repo] (https://github.com/RUJodan/SourceUndead) adresinde çeşitli dışa aktarma/içe aktarma yöntemleri görebilirsiniz. Ben hala kendimi –

cevap

39

Bu aslında belirtimin bir parçası mı? Modül tanımlayıcılar (sizin durumunuzda './reducers') fiili modülleri çözülür nasıl

sayılı modülü yükleyici/bundler uygulanmasına bırakılır, bu ES6 tarafından specificed değil. Ve CommonJs da belirtilmiş gibi görünmüyor.

Bu, düğümün nasıl yapılacağıdır - bir dizin gerektirdiğinde, index.js dosyası kullanılacaktır. browserify veya webpack gibi paketleyiciler bu sözleşmeyi (uyumluluk nedeniyle) izledi.

+1

Ah aktarmayı öğreniyorum, sanırım soruyu yanlış anladım (başlığa gerçekten bakmalıydım). fwiw, webpack 'index.js'den başka dosyalara çözümlemek için yapılandırılabilir. –

+0

@FelixKling: Ah, ona bakmadım bile. Bir bağlantın var mı, bu yapılandırmayı bulamadım? – Bergi

+0

Hmm, tekrar baktıktan sonra, bu geçerli sürümünde değil, webpack 2.0 gelecektir sanırım. –