2015-08-18 13 views
5

Kaynak kodumda bir __DEVTOOLS__ genel değişkeni var. Ve normalde bunu boole değeri olarak tanımlamak için webpack DefinePlugin kullanıyorum. Babel derleme yaparken global değişkenleri enjekte etmek veya göz ardı etmek için herhangi bir yaklaşım var mı?

new webpack.DefinePlugin({ 
    __DEVTOOLS__: true 
}) 

Ama benim mocha testinde

sadece babel/register kullanmak ve benim test wepack kullanmak istemiyorum istiyorum. Küresel değişkenleri webpack DefinePlugin gibi enjekte etme veya en azından global değişkenleri derlediğinde yok saymanın bir yolu var mı? Mocha ile

cevap

5

sen Ne istediğini elde düşünüyorum global nesnesine özelliklerini atayabilirsiniz: istediğiniz yere

global.__DEVTOOLS__ = true; 

Sen mesela, bu koyabilirsiniz Bir before bloğu, ancak zaten testlerinizden önce yüklediğiniz bir helper.js veya setup.js dosyanız varsa, bu koymak için iyi bir yer olurdu.

+0

ama:

// config/mocha-setup.js require('babel-register'); global.__DEVTOOLS__ = true; 

Sonra test komutunu yapılandırmak babel/--recursive' kayıt, ilk derlemek mi olacak gibi görünüyor, bu yüzden kaçak önce başarısız olacak testleri. –

+0

Yorumunuz belirsiz. Testlerinizde '__DEVTOOLS__' adlı global bir değişkene ihtiyacınız varsa,' global .__ DEVTOOLS__' ayarının yapılması, derleme öncesinde ya da sonrasında olup olmadığına bakılmaksızın, testlerinizin yapılmasından önce yapıldığı sürece bunu gerçekleştirecektir. –

+1

Herhangi bir test kodunun çalıştırılmasından önce 'ReferenceError: __DEVTOOLS__ tanımlı değil' ifadesini aldım. babel derlemesi, mocha'nın çalışmasından daha öncedir, bu yüzden babel derlemeden önce 'global .__ DEVTOOLS__ = true;' türetmek için bir yer bulmalıyım. –

4

Kısa bir süre önce bu soruna girdim ve 'u bir before bloğuna ekledim veya bir sınamada herhangi bir yer benim için çalışmadı. Bunu çözdüğümde, --require bayrağı aracılığıyla mocha cli'ye geçen ayrı bir betik yaratıyorum. `Mocha --compilers js kullanırken

// package.json 

scripts: { 
    test: mocha --require ./config/mocha-setup 
} 
+0

Bu, test dışı kodumda global bir değişkene sahip olma sorunumu çözdü! – Alexandra

+0

Teşekkürler bu, ithalatla ilgili sorunumu çözdü! :) – acesmndr

İlgili konular