Webpack v4 - неверные имена оптимизационных цепочек - PullRequest
0 голосов
/ 17 мая 2018

Я нахожусь в процессе миграции веб-пакета с v3 на v4 и у меня возникают проблемы с новым форматом CommonsChunkPlugin.

В настоящее время, когда mode установлен на development, все работает правильно, выводя:

vendor.js, shared.js, default.js, 0.js, 1.js и т. Д. И т. Д.

Однако, если для mode установлено значение production, пакеты shared.js и vendor.js имеют числовые имена, что означает, что я больше не могу включать их на страницу. Эти чанки следовали за свойством filename в output, которое мне нужно, поскольку хеширование обеспечивается другим шагом по архитектурным соображениям.

Моя конфигурация выглядит следующим образом:

...
output: {
   filename: !RELEASE ? '[name].js' : '[name].js',
   chunkFilename: !RELEASE ? '[id].js' : '[id]-[chunkhash:8].js',
   jsonpFunction: '__LIB__',
   publicPath: '/content/dist/'
}
...
splitChunks: {
   name: true,
   chunks: 'async',
   cacheGroups: {
      default: false,
      commons: {
         chunks: 'initial',
         name: 'shared',
         minChunks: 2,
         maxInitialRequests: 5,
         minSize: 0
      },
      vendor: {
         test: /[\\/]node_modules[\\/]/,
         name: 'vendor',
         enforce: true,
         chunks: 'all',
         minChunks: 1
      }
   }
}

Спасибо

1 Ответ

0 голосов
/ 17 мая 2018

Нашел решение с помощью этого плагина: https://www.npmjs.com/package/webpack-chunk-rename-plugin

Предоставляет отдельные правила именования для определенных блоков, в моем случае shared.js и vendor.js:

plugins: [
   new ChunkRenamePlugin({
      vendor: '[name].js',
      shared: '[name].js'
   }),
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...