Chciałbym podzielić mój kod dostawcy na dwie części, jedną zawierającą wszystkie biblioteki kątowe i drugą, która zawiera wszystko inne.Podział bibliotek dostawców na wiele części z pakietem sieci Web
Moja kątowe aplikacja ma jeden punkt i jest ustawiony coś takiego:
entry: {
app: './path_to/app.js',
vendor: ['jquery', 'moment', 'numeral'],
'vendor.angular': ['angular', 'angular-route', 'angular-numeraljs']
}
I wtedy użyć CommonsChunkPlugin skonfigurować dwa inne pakiety:
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
chunks: ['app'],
warnings: false,
filename: 'vendor.bundle.js'
})
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor.angular',
chunks: ['app'],
warnings: false,
filename: 'vendor.angular.bundle.js'
})
Wytwarza 3 pliki:
Version: webpack 1.13.1
Time: 12719ms
Asset Size Chunks Chunk Names
app.bundle.js 19.2 kB 0 [emitted] app
vendor.bundle.js 484 kB 1 [emitted] vendor
vendor.angular.bundle.js 652 kB 2 [emitted] vendor.angular
[0] multi vendor.angular 124 bytes {2} [built]
[0] multi vendor 88 bytes {1} [built]
+ 124 hidden modules
app.bundle.js zawiera tylko mój kod aplikacji.
vendor.bundle.js zawiera wszystkie biblioteki stron trzecich z wyłączeniem rzeczy kanciastych
vendor.angular.bundle.js zawiera wszystkie kanciaste rzeczy I wszystkie moje biblioteki stron trzecich, które są już w sklepie vendor.bundle.js.
Czy w ogóle istnieje moduł kątowy w pakiecie vendor.angular.bundle.js, bez automatycznego dołączania do innych bibliotek?
Co się stanie, jeśli nazwiesz fragment "kątowy" zamiast "dostawcy"? ... To tylko przeczucie, ale być może notacja kropkowa powoduje, że pakiet sieciowy uwzględnia rzeczy dostawców. – andzep
@andzep Nie działa, próbował tego. Bez różnic w rozmiarach. – Nick
Ponadto, patrząc na dokumenty. Istnieje opcja 'CommonsChunkPlugin'' minChunks: Infinity', której celem jest: 'z większą liczbą wpisów, to gwarantuje, że żaden inny moduł nie wchodzi do kawałka dostawcy' ... więc może to jest brakująca opcja. – andzep