2017-02-27 25 views
6

webpack-bundle-analyzer, vendor.js 'da bulunan elliptic ve bn.js öğelerini içerir. Ancak bu modüller kodda kullanılmaz veya package.json'a dahil edilmez.Webpack paketimdeki elliptik bn.js modüllerini neden içeriyor

npm ls bn.js verir:

├─┬ [email protected] 
│ └─┬ [email protected] 
│ └─┬ [email protected] 
│  └─┬ [email protected] 
│  └── [email protected] 
+0

Bu, kripto modülünü kullanan randomstring modülünü içerdiği için oluyordu. Ön uç kodunda kripto modülü kullanılıyorsa, tüm kripto işlevi ön uç js paketine dahil edilir. –

+0

Bu sorunla nasıl başa çıkacağımı söyleyebilir misiniz? Bu, genel paket boyutumun daha büyük olmasına neden olduğundan, webpack 1 (eliptik ve bn.js dahil edilmemiştir). –

cevap

-2

Bunlar senin bağımlılıkları bağımlılıkları vardır. kodunuzda bir yere bir bağımlılık olarak crypto içe Örneğin source

1

WebPack Paketinizdeki elliptic ve bn.js (ve diğer, daha küçük modülleri) içerir.

Eğer sadece fonksiyonunu (Ality) Eğer ihtiyaç sağlayan belirli npm modülü için bakabilir, bu kocaman bağımlılıkları önlemek için.

Örneğin, yapmak için crypto ithal ediyordum;

yerine
const crypto = require('crypto'); 
const hmac = crypto.createHmac('sha1', buf); 

... (bu durumda ...) göründüğünde create-hmac module yükleyin ve yapabileceği;

const createHmac = require('create-hmac'); 
const hmac = createHmac('sha1', buf); 

Bazı motivasyona ihtiyacınız varsa; crypto'u gziplenmiş paket boyutumuzdan 150Kb kesilmiş dependancy olarak kaldırma (ancak kullandığınız kripto yöntemlerine bağlı olarak YMMV).