Почему Webpack 4 запускается во всех точках входа? - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время я обновляю WP с v1.2 => v4.1 в большом коммерческом приложении. У меня возникла проблема, когда splitChunks создает несколько экземпляров своего магазина для каждой точки входа (используемый нами магазин очень старый и устаревший, но это вне моего контроля банкомата).

Проблема, как я вижу, заключается в том, что код времени выполнения добавляется в каждую точку входа, которая выполняет один и тот же модуль несколько раз - мне удалось воссоздать проблему в изолированной среде, и когда я добавил один runtimeChunk в свою конфигурацию, этот извлеченный код времени выполнения в один файл и решил мою проблему - однако, когда я применил это к своему приложению - файл WAS был создан, но runtimeChunk также оставался в каждой точке входа, и проблема все еще сохраняется. Ниже приведен пример моей текущей конфигурации.

module.exports = {
  entry: {
  app: [
    'babel-polyfill', 
    'whatwg-fetch', 
    './src/app/app' 
  ],
  testEntry: './src/modules/testEntry.js',
},
output: {
  pathinfo: true,
  publicPath: '/',
  chunkFilename: '[id].js'
},
module: {
  rules: [
    {
      test: /\.jsx?$/,
      exclude: /node_modules/,
      loader: 'babel-loader'
    },
  ]
},
optimization: {
  splitChunks: {
    cacheGroups: {
      commons: {
        name: 'commons',
        filename: "js/[name].js",
        test: /\.js(x)?$/,
        chunks: "initial",
        minChunks: 1
      }
    }
  },
  runtimeChunk: {
    name: 'shared',
  },
},
mode: 'development', 
devtool: 'eval', 
devServer: {
  contentBase: __dirname, 
  port: 5000
},
plugins: [
  new HtmlWebpackPlugin({
    template: './src/index.html'
  })
]

};

Есть ли другой способ заставить код выполнения выполняться только один раз?

РЕДАКТИРОВАННОЕ ОБНОВЛЕНИЕ

Я сейчас обновился до версии 4.17 (не позднее), и теперь, как ни странно, - когда я использую одну опцию времени выполнения - мои входные пакеты не генерируются

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...