Skip to content
Snippets Groups Projects
Select Git revision
  • 6b1d1af0f94d57677d4faafeaa1cfcf8871d7d15
  • mui5-annotation-on-video-stable default
  • get_setter_canvasSizeInformations
  • fix-error-div-into-p
  • annotation-on-video-v2
  • detached
  • annotation-on-video-r17
  • mui5
  • mui5-react-18
  • jacob-test
  • annotation-on-video protected
  • master
  • test-antoinev1
  • 20-fetch-thumbnail-on-annotation
  • add-research-field
  • Save
  • add-plugin
  • 14-wip-no-seek-to
  • 14-bug-on-video-time-control
  • 9_wip_videotests
  • _upgrade_material_ui
  • latest-tetras-16
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.0
  • v3.0.0-rc.7
  • v3.0.0-rc.6
  • v3.0.0-rc.5
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • v3.0.0-rc.2
  • v3.0.0-rc.1
  • v3.0.0-beta.10
  • v3.0.0-beta.9
  • v3.0.0-beta.8
  • v3.0.0-beta.7
  • v3.0.0-beta.6
  • v3.0.0-beta.5
  • v3.0.0-beta.3
41 results

WindowMiddleContent.js

Blame
  • webpack.config.js 1.85 KiB
    const path = require('path');
    const webpack = require('webpack');
    const TerserPlugin = require('terser-webpack-plugin');
    const paths = require('./config/paths');
    
    /** */
    const baseConfig = mode => ({
      entry: ['./src/polyfills.js', './src/index.js'],
      module: {
        rules: [
          {
            include: paths.appPath, // CRL
            loader: require.resolve('babel-loader'),
            options: {
              // Save disk space when time isn't as important
              cacheCompression: true,
              cacheDirectory: true,
              compact: true,
              envName: mode,
            },
            test: /\.(js|mjs|jsx)$/,
          },
          {
            test: /\.css$/i,
            use: ['style-loader', 'css-loader'],
          },
        ],
      },
      optimization: {
        minimizer: [
          new TerserPlugin({
            extractComments: true,
          }),
        ],
      },
      output: {
        filename: 'mirador.min.js',
        library: 'Mirador',
        libraryExport: 'default',
        libraryTarget: 'umd',
        path: path.join(__dirname, 'dist'),
        publicPath: '/dist/',
      },
      plugins: [
        new webpack.IgnorePlugin({
          resourceRegExp: /@blueprintjs\/(core|icons)/, // ignore optional UI framework dependencies
        }),
      ],
      resolve: { extensions: ['.js'] },
    });
    
    module.exports = (env, options) => {
      const isProduction = options.mode === 'production';
    
      if (isProduction) {
        return {
          ...baseConfig(options.mode),
          devtool: 'source-map',
          mode: 'production',
          plugins: [
            ...(baseConfig.plugins || []),
            new webpack.optimize.LimitChunkCountPlugin({
              maxChunks: 1,
            }),
          ],
        };
      }
    
      return {
        ...baseConfig(options.mode),
        devServer: {
          contentBase: './__tests__/integration/mirador',
          hot: true,
          port: 4444,
        },
        devtool: 'eval-source-map',
        entry: ['react-hot-loader/patch', ...baseConfig(options.mode).entry],
        mode: 'development',
      };
    };