2016-12-27 3 views
0

В моей webpack конфигурации у меня есть запись, как определено, как это -Как определить точку входа для webpack CommonsChunkPlugin?

entry: [ 
    'webpack-hot-middleware/client', 
    './src/app.jsx' 
    ], 

я понял, что мой размер пучка получать генерируется около 8 Мб размера.

Так что я решил разделить поставщика файлов JavaScript на отдельные куски т.е. bundle.vendor.js

Я знаю, что я должен использовать Используйте CommonsChunkPlugin для этого и изменить запись на что-то вроде этого

entry: { 
    app: './src/app.js', 
    vendors: './src/vendors.js' 
    } 

Но не могу понять, как изменить мою существующую конфигурацию ввода для той же, которая в настоящее время установлена ​​как

entry: [ 
    'webpack-hot-middleware/client', 
    './src/app.jsx' 
    ], 
+0

commonchunksplugin на самом деле не помогает/работает в режиме разработки. размер пакета также в основном не имеет отношения к режиму разработки. плохо названный и запутанный «dllplugin» полезен для извлечения больших ресурсов в отдельный предварительно построенный файл на отдельном этапе предварительной сборки для целей разработки. –

ответ

1

1. Вы должны сказать Webpack о пунктах въезда, и в этом случае, вы можете определить вендоров записи как массив зависимостей. Как это:

entry: { 
    app: path.join(__dirname, 'path/to/app.jsx'), // prefer using absolute paths to avoid problems 
    vendors: ['jquery', 'lodash'] 
} 

2. Вы должны сказать Webpack, какие из ваших записей следует оптимизировать: Обратите внимание, что вы передаете вторую строку в конфигурации «имена» плагина. Это имя другого файла, который будет создан Webpack. Он будет отвечать за то, чтобы сообщить браузеру, как правильно обрабатывать зависимости, и будет включен до тегов сценариев приложений и вендоров.

plugins : [ 
    new webpack.optimize.CommonsChunkPlugin({ 
     names: ['vendors', 'manifest'] 
    }) 
] 

Если вам нужно, у меня есть repo with a working example of this. Часть CommonsChunk находится в конфигурации prod.

+0

. Где я должен помещать это '' webpack-hot-middleware/client'' – WitVault

+0

Это еще одна проблема. Похоже, это уже было задано здесь: http://stackoverflow.com/questions/31844343/how-to-use-webpack-dev-server-multiple-entries-point –

+1

Я сделал следующее и работал 'entry: { app : [ 'WebPack-горячий промежуточный слой/клиент, './src/app.jsx' ], поставщика: [ 'lodash' ] } ' В любом случае спасибо за помощь. Вы можете обновить свой ответ, если хотите. – WitVault

Смежные вопросы