2015-04-19 26 views
28

ES6 ve modülleri PhantomJS ile kullanmanın bir yolu var mı?PhantomJS ile ES6 nasıl kullanılır?

Babel'i kullanarak her dosyayı ES6'dan ES5'e taşıyabilirim, ancak paralel ağaçları (ES6'da ve diğeri ES5'te) korumak ve ES5 modüllerini gerektirecek şekilde içe aktarmaları yazmak için gariptir. Daha temiz bir çözüm arıyorum.

Tüm içe aktarma ve dışa aktarma kodlarını kaldırabilir, modülleri bir araya getirebilir, sonucu tek bir dosyaya aktarabilir, ardından PhantomJS aracılığıyla çalıştırabilir, ancak mümkünse ithalatı ve ihracatı kullanmayı tercih ederim.

ES6 bağımlılık ağacını tek bir ES5 dosyasına aktarmak için babelify dönüşümü ile Browserify kullanmayı denedim ancak Browserify, webpage gibi PhantomJS tarafından sağlanan modülleri bulamıyor. Ben benim package.json koyarak bu modülleri görmezden denedim:

"browser": { 
    "webpage": false 
} 

ama webpage ithal yerine PhantomJS modülün boş bir nesne döndürür.

ES6 modüllerini PhantomJS ile kullanmanın temiz bir yolu var mı? Browserfy'nin --exclude

+0

Tarayıcınızı "webpage" gibi PhantomJS tarafından sağlanan modülleri bulamıyorsanız, tarayıcıların bunları istemediğiniz zaman bu modülleri derlemeye çalıştığını veya bu modüllerin derlendiğini ve göz ardı edildiğini mi kastediyorsunuz? ? –

+0

İhtiyaç ('web sayfası') 'gerekir, bu da Browserify'nin' webpage' denilen bir düğüm modülünü aramasına neden olur. Bulunamadığı bir hatayı atar. Derlenmiş modüllere ihtiyacım yok. – exupero

cevap

2

Seçenek ihtiyacım olanı yapar. Bağımlılık ağacından webpage dışlar ama yerinde ithalat bırakır

browserify --exclude webpage -t babelify script.js --outfile compiled.js 
phantomjs compiled.js 

.

+15

Bu sorunun neden cevap verdiğini bilmiyorum. Evet, PhantomJS geçici olarak eksik olan ES6 özelliklerini çözer. Ancak, önce "gerçek" ES6 özelliklerini ilk önce göndermeden çalıştırmak istiyorsanız, bu bir çözüm olamaz. – dude