Запретить веб-пакет повторно использовать код между точками входа в cachedGroups

Я надеюсь, что кто-то может помочь мне.

Мой проект использует реаги и веб-пакет. При рендеринге на стороне сервера (поем реагирующая для.net) я использую веб-пакет для создания моего CSS. В ssr я могу определить, какой тэг css загрузить, через разные точки входа, которые есть в моем приложении.

Идея состоит в том, что каждая точка входа будет иметь 2 файла CSS. Один для критических и один для остальных.

Работает нормально, но с одной стороны. Когда я использую один и тот же компонент более чем в одной точке входа, webpack создает для этого общие файлы CSS.

Но у меня есть чувство, что это происходит только с файлом, который идет в cacheGroups.

module.exports = {
  mode: 'production',
  entry: {
    LoaderContainer: './js/containers/loader/loaderContainer.js',
    ReviewsContainer: './js/containers/reviews/reviewsContainer.js',
    TopBarContainer: './js/containers/topBar/topBarContainer.js',
    VideoPlayer: './js/components/grid-editor/VideoPlayer.js',
    HomePageContainer: './js/containers/homePage/HomePageContainer.js',
    SearchContainer: './js/containers/search/SearchContainer.js',
    TourDetailContainer: './js/containers/tourDetail/TourDetailContainer.js',
    FAQWidgetContainer: './js/components/faq/FaqsContainer.js',
    CallUsContainer: './js/components/call-us/CallUsContainer.js',
    GetInTouchContainer: './js/components/get-in-touch/GetInTouchContainer.js',
    FAQContainer: './js/components/faq/FAQSectionContainer.js',
    LandingPageContainer: './js/containers/landingPage/LandingPageSsr.js',
    TourHeader: './js/components/tour-detail/TourHeader.js',
    PostDetailContainer: './js/containers/blog/postDetailContainer.js',
    HeaderContainer: './js/containers/header/headerContainer.js',
    FeedbackContainer: './js/containers/feedback/feedbackContainer.js',
    OurPromise: './js/components/home-page/OurPromise.js'
  },
  optimization: {
    mergeDuplicateChunks: false,
    concatenateModules: false,
    splitChunks: {
      chunks: 'initial',
      maxAsyncRequests: 1,
      maxInitialRequests: 1,
      cacheGroups: {
        critical: {
          test: /critical(.+?)\.scss$/,
          enforce: true
        }
      }
    }
  },

  cache: false,
  devtool: 'source-map',
  output: {
    path: path.resolve(__dirname, '../../dist/'),
    publicPath: '/dist/'
  },
  externals: externals,
  plugins: [
    new CleanWebpackPlugin([path.resolve(__dirname, '../../dist/')], {
      root: path.resolve(__dirname, '../../')
    }),
    new webpack.IgnorePlugin(/moment/),
  ],
  module: {
    rules: [
      {
        test: /\.(js|jsx)?$/,
        loaders: ['babel-loader'],
        include: [path.resolve(__dirname, '../js/')],
        exclude: /node_modules|bower_components/
      },
      {
        test: /\.svg$/,
        loader: 'svg-inline-loader'
      },
      {
        test: /\.scss$/,
        exclude: /\.module\.scss$/,
        sideEffects: true,
        use: [
          MiniCssExtractPlugin.loader,
          stylesLoaders.CSSLoader,

          stylesLoaders.sassLoader
        ]
      },
      {
        test: /\.module\.scss$/,
        use: [
          MiniCssExtractPlugin.loader,
          stylesLoaders.CSSModuleLoader,
          stylesLoaders.sassLoader
        ]
      }
    ]
  },
  resolve: {
    modules: ['node_modules', path.resolve('.')]
  },
  node: {
    net: 'empty',
    tls: 'empty',
    dns: 'empty'
  }
}

обычно вывод такой: критический ~HeaderContainer.min.ccs HeaderContainer.min.css

но иногда у меня есть: критический ~HomePageContainer~LandingPageContainer~OurPromise.min.css

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

Я попробовал все. Если бы кто-то мог помочь, было бы здорово

0 ответов

Другие вопросы по тегам