Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/bs / src / .plugins / prod / optimization.ts
Size: Mime:
import { Configuration, Options } from '../../typings'

export default function optimizationMiddleware(
  config: Configuration,
  options: Options
) {
  if (!options.isClient) {
    console.warn('[bs] not client, uglifying with specific optimization')
    // config.optimization = {
    //   removeEmptyChunks: true,
    //   mergeDuplicateChunks: false,
    //   usedExports: true,
    //   providedExports: true,
    //   concatenateModules: false,
    //   namedModules: true,
    //   namedChunks: true,
    //   nodeEnv: 'production',
    //   minimize: false,
    // }
    config.optimization = {
      removeEmptyChunks: false,
      mergeDuplicateChunks: false,
      usedExports: false,
      providedExports: false,
      concatenateModules: false,

      namedModules: true,
      namedChunks: true,
      nodeEnv: 'production',
      minimize: false,
    }
    return
  }

  /**
   * @see https://webpack.js.org/configuration/optimization/
   */
  config.optimization = {
    // removeAvailableModules: false,
    removeEmptyChunks: true,
    mergeDuplicateChunks: true,

    // occurrenceOrder: true,
    // splitChunks: false,
    // sideEffects: false,

    usedExports: true,

    providedExports: true,
    concatenateModules: true,

    // namedModules: true,
    // namedChunks: true,
    nodeEnv: 'production',
    // minimize: false,
    minimize: true,
    // minimizer: [uglify],

    // use it?
    // splitChunks: {
    //   cacheGroups: {
    //     default: false,
    //     commons: {
    //       test: /[\\/]node_modules[\\/]/,
    //       name: 'vendor_app',
    //       chunks: 'all',
    //       minChunks: 2
    //     },
    //   },
    // },
    /**
     * @see https://webpack.js.org/guides/code-splitting/
     * @see https://medium.com/dailyjs/webpack-4-splitchunks-plugin-d9fbbe091fd0
     * @see https://github.com/vuejs-templates/webpack/issues/996#issuecomment-338128458
     * @see https://itnext.io/react-router-and-webpack-v4-code-splitting-using-splitchunksplugin-f0a48f110312
     */
    // splitChunks: {
    //   cacheGroups: {
    //     default: false,
    //     vendors: false,
    //     // vendor chunk
    //     vendor: {
    //       // sync + async chunks
    //       chunks: 'all',
    //       // import file path containing node_modules
    //       test: /node_modules/,
    //     },
    //   },
    // },
  }
}