2016-03-21 17 views
2

Yerel olarak büyük boyutlu 3D varlıkları kullanan bir Javascript oyunu geliştiriyorum. Gördüğünüz gibi, bu gibi şeyler yapıyor bana büyük bir başlangıç ​​paket ve büyük başlangıç ​​inşa zaman verirWebpack dev sunucusu nasıl indirilir rebuild süresi

require('../../assets/models/house.obj') 

:

[0]   main-ad421c4138968fe0a8ae.js 14.8 MB  0 [emitted] main 
[0] webpack built ad421c4138968fe0a8ae in 26610ms 

Birlikte iyiyim ben gibi WebPack olanlarda öğeleri gerektirmektedir büyük yapım süresi, ancak gerçek sorun, dev sunucusunu kullanarak yeniden oluşturma zamanı.

[1] [piping] File src/Game.js has changed, reloading. 
[0] webpack built 80f5c6c75e347304002c in 10534ms 

Paketi yeniden oluşturmak ve tarayıcıya ulaşmak için daha uzun süre 10-20 saniye sürer. Mümkünse bu zamanı azaltmak istiyorum. Benim varlıklarını görmezden denedim

tamamen klasörü:

new webpack.IgnorePlugin(/assets\/*/), 

Ama tahmin edeceğiniz gibi, bu artık require() anlamına gelir temelde kullanarak tüm noktasıdır onun loacl yolu ile bir varlık webpack .

Ben de varlıkları klasörünü görmezden webpack watch ignore plugin kullanarak denedim ve düğüm modülleri:

new WatchIgnorePlugin([ 
    path.resolve(__dirname, '../assets/models/'), 
    path.resolve(__dirname, '../node_modules/') 
]), 

Ancak bu da inşa süresini azaltmaz. I filed a bug çünkü eklenti aslında hiçbir şey yapmıyor.

+1

Öğeleriniz yeniden yapılandırmalar arasında değişmiyorsa VE (Varlıklar olduklarından varsayıyorum), uygulamanızın başka herhangi bir şeye bağlı olan bir kod yoktur - yalnızca uygulamanız bunlara bağlıdır, yapamazsınız [çoklu giriş parçaları] (https://webpack.github.io/docs/code-splitting.html#running-multiple-entry-points)? (Sizin durumunuzda, asla geri yüklemeyeceğiniz, ve onları değiştirmediğiniz sürece varlığınız ile bir ilk girişiniz ve oyun kodunuzla bir saniye) – topheman

+0

@topheman bu ana giriş parçamın hala tüm varlıkları gerektirir Webpack hala onları A'ya paketlemez mi? –

+0

İçerideki tüm büyük varlıklarımı içeren büyük bir giriş yığınını ekledim, hala büyük yapım süreleri –

cevap

4

Sıcak yeniden yükleme süresini önemli ölçüde azaltmak için bulduğum en iyi yol, Webpack'in tek "DllPlugin" işlevini kullanmaktır. Temel olarak, içindeki tüm üçüncü taraf bağımlılıklarınızla birlikte statik bir dosya oluşturur, bu nedenle Webpack, sıcak yeniden yükleme sırasında bu bağımlılıklara hiçbir zaman dokunmaz.

Şu anda bildiğim her şeyi yazdım here.

İlgili konular