2015-09-10 12 views
8

Modüldeki her modülde, ES6 modüllerindeki kod yürütülür mü? Webpack kullanıyorum ve tam olarak öyle görünüyor.ES6 modül kodu her alındığında yürütülür

// FormStore.js 
import sessionActions from "../../session/actions/session"; 

// session.spec.js 
import sessionActions from "../../../src/session/actions/session"; 

This causes the code in the session module to be executed twice 
+1

yok nasıl yapılacağı için https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#map , modüller sadece bir kere vardır. Bir örnek gösterebilir misin? – Bergi

+0

Görünüşe göre bu, yalnızca karma yoluyla testler yaptığımda oluyor. Bu biraz garip – ppoliani

+0

[MCVE] (http://stackoverflow.com/help/mcve) gönderebilir misiniz? – Bergi

cevap

0

Tam olarak cevabı bilmiyorum, ancak bunun karma ile ilgili olduğundan şüpheleniyorum. Sanırım iki farklı demete sahip olması. karma.config

preprocessors: { 
    "client/specs/index.ts": ["webpack"], 
    "client/specs/**/*spec.ts": ["webpack"] 
}, 

webpack: { 
    entry: { 
     index: "./client/src/index.tsx", 
     vendor: [] 
    } 
}, 

yılında

Temelde, gerçekten bu muhtemelen ek bir paket yaratacak gibi index giriş noktası eklemek gerekmez.

0
  1. İçe aktarıldığında kodunuzun yürütülmesini istiyor musunuz?/Session/actions/session dosyalarınızda, işlev bildirimi yerine export edilmekte olan bir işlev çağrısı varsa, oluşturduğunuz herhangi bir bundle içe aktarıldığında çağrılır. Farklı modülleri farklı dosyalara aktarabilirsiniz.

  2. Eğer karma-webpack usage

kullanıyorsanız

bir iş arkadaşınız sorun bugün-aynı sorunu yaşayan edildi
webpack: { 
     // karma watches the test entry points 
     // (you don't need to specify the entry option) 
     // webpack watches dependencies 

     // webpack configuration 
    }, 
0

biri iki ithalatın neden gibiydi olduğunu söyler paket, ancak her bir ithalat farklı bir yol kullanarak paketini ifade eder.

// FormStore.js 
import sessionActions from "../../session/actions/session"; // note first path 

// session.spec.js 
import sessionActions from "../../../src/session/actions/session"; // note second path, which is different from first 

o session.spec.js ithalat aynı yolu kullanarak ithal etmek mümkün müdür: Aynı şeyi yapıyor gibi görünmektedir? Bu dosyaların göreceli konumları nedeniyle bir seçenek değilse, modül yükleyicinizi oturumActions diğer adıyla (örneğin, map veya path kullanarak) yapılandırabilirsiniz. Ancak, bu ortamınızda bir seçenek olup olmadığından emin değilim.

Bkz: Bu kullanarak system.js

İlgili konular