Я пытаюсь использовать splitChunks в Webpack 4, ожидая объединения модулей в node_modules в один пакет, который не будет повторно компилироваться каждый раз, когда я вношу изменения в свой код.
Я добавил этот код в свой webpack.config.js:
optimization: {
splitChunks: {
chunks: 'all'
}
},
И я добавил эту строку в свой index.html:
<script src = "./vendors~app.js"></script>
Файл vendor ~ app.js представляет собой новый сгенерированный пакет.
Когда я запускаю webpack-dev-server в первый раз, он говорит:
Built at: 2018-09-13 13:32:47
Asset Size Chunks Chunk Names
app.js 3.15 KiB 0 [emitted] app
vendors~app.js 1.91 MiB 1 [emitted] [big] vendors~app
app.js.map 13.7 KiB 0 [emitted] app
vendors~app.js.map 3.98 MiB 1 [emitted] vendors~app
Когда я вношу изменения в исходный код и сохраняю его, webpack-dev-server начинает компилировать, как ожидалось, и сообщает:
Built at: 2018-09-13 13:33:46
Asset Size Chunks Chunk Names
app.js 3.16 KiB 0 [emitted] app
vendors~app.js 1.91 MiB 1 [emitted] [big] vendors~app
app.js.map 13.7 KiB 0 [emitted] app
vendors~app.js.map 3.98 MiB 1 [emitted] vendors~app
Я ожидал, что компилятор не будет повторно компилировать vendors ~ app.js! Я думал, в этом смысл использования splitChunks? Я ошибся? как я могу избежать повторной компиляции компилятором вендоров ~ app.js?
Большое тебе спасибо.
Вы используете
webpack-dev-server --hot
? Я только что заметил, что когда я использую горячий режим, все мои файлы js отображаются как выпущенные, но без--hot
только файл, который действительно изменился. Не знаю почему ... Также попробуйте в режиме часов просто для тестирования.