2017-02-15 18 views
11

Şu anda sınama yapmayan mevcut bir projeye test yapıyorum. Testlerim node_modules/ ithalatını derlemekte başarısız oluyor.Jest kurulumu "SyntaxError: Beklenmeyen belirteç dışa aktarma"

/Users/me/myproject/node_modules/lodash-es/lodash.js:10 
export { default as add } from './add.js'; 
^^^^^^ 
SyntaxError: Unexpected token export 

    at transformAndBuildScript (node_modules/jest-runtime/build/transform.js:320:12) 
    at Object.<anonymous> (app/reducers/kind_reducer.js:2:43) 
    at Object.<anonymous> (app/reducers/index.js:12:47) 

buldum geçici çözüm böyle package.json jest config 'beyaz listeye' node_modules şudur: basit bir çalışmasına 1 dakikadan daha uzun sürer, çünkü

"jest": { 
    "transformIgnorePatterns": [ 
     "!node_modules/" 
    ] 
    } 

Bu kesmek gibi görünüyor node_modules/lodash-es/lodash.js ithalatını test edin.

Herhangi bir yardım veya yön için teşekkür ederiz, teşekkürler! node_modules büyük olduğu için varsayılan olarak

Jest node_modules dönüşümü değildir: Burada daha tam yanıtı yayınlama

+0

jest bunu tükendi böylece düğümün bir çok ihracat ES5 modülleri dönüştürmeden kutunun. Bu yüzden varsayılan olarak jest node_modules'ı dönüştürmez. Bu durumda, lodash-es özellikle modülleri dışa aktarır, bu yüzden jest bu kodu dönüştürmesine izin vermeniz gerekir. "TransformIgnorePatterns" öğesinde "!!! Node_modules/lodash-es" ifadesini kullanırsanız güvenli olabilirsiniz, böylece jest sadece lodash-es'de babel çalıştırır. –

cevap

9

ben içine bu eklemek zorunda benim .jestconfig:

"transformIgnorePatterns": [ 
    "<rootDir>/node_modules/(?!lodash-es)" 
] 
9

. Çoğu düğüm modülü, ES5 kodunu gösterecek şekilde paketlenmiştir, çünkü bu, başka bir dönüşüm olmadan (ve büyük ölçüde geriye doğru uyumlu) çalıştırılamaz durumdadır. Sizin durumunuzda, lodash-es, özellikle Jest tarafından babel yoluyla yapılması gereken ES modüllerini ortaya çıkarmaktadır.

Beyaz listenizi daraltmayı deneyebilirsiniz, böylece Jest, babanızdaki node_modules içindeki her javascript dosyasını aktarmaya çalışmaz.

sizin durumunuzda doğru yapılandırma olduğunu düşünüyorum:

"jest": { 
    "transformIgnorePatterns": [ 
    "/!node_modules\\/lodash-es/" 
    ] 
} 
İlgili konular