Как удалить дубликат кода из Webpack 4? - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь отделить 2 файла в папке dist от основного блока.

Моя папка dist -

  1. main. js
  2. vendor . js
  3. common. js

Теперь я хочу разбить мой main. js на 3 файла:

  1. main. js
  2. i18nEn. js
  3. i18nEs. js

Эти файлы i18nEn и i18nEs уже являются частью main. js. Как я могу разделить его так, чтобы не было повторяющихся значений?


    entryFiles = {
      ...entryFiles,
      polyfill: '@babel/polyfill',
      main: helpers.root('src', 'myMain'),
      i18nEn: helpers.root('src/i18n', 'messages-en'),
      i18nEs: helpers.root('src/i18n', 'messages-es'),
      'bundle.common.min': glob.sync(`${__dirname}../../src/styles/styles.less`),
    };

    output: {
        libraryTarget: 'umd',
        library: 'main',
        path: helpers.root('dist'),
        filename: 'js/[name].js',
      },

    optimization: {
        runtimeChunk: {
          name: 'main',
        },
        minimizer: [
          new OptimizeCSSAssetsPlugin({
            cssProcessorPluginOptions: {
              preset: ['default', { discardComments: { removeAll: true } }],
            },
          }),
          new UglifyJSPlugin({
            cache: true,
            parallel: true,
            sourceMap: true,
          }),
        ],
        splitChunks: {
          name: true,
          cacheGroups: {
            vendor: {
              test: /node_modules/,
              name: 'vendor',
              chunks: 'all',
            },
            common: {
              minChunks: 2,
              name: 'common',
              chunks: 'all',
            },
            i18n: {
              test: /[\\/]src[\\/]i18n[\\/]/,
              name: 'i18n',
            },
            styles: {
              test: /\.css$/,
              name: 'styles',
              chunks: 'all',
              enforce: true,
            },
          },
        },
      },

и mymain. js уже имеет импортированные i18nEn и i18nEs.


    import messagesEn from './i18n/messages-en';
    import messagesEs from './i18n/messages-es';

    Vue.config.devtools = true;

    const vm = new Vue({
      el: '#main',
      data: {
        globals,
        messagesEn,
        messagesEs,
      },

В моей папке dist я вижу 3 разных файла, но код повторяется. Как я могу добиться этого изменения без двуличия?

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