Skip to content
Snippets Groups Projects
webpack.config.js 1.85 KiB
Newer Older
  • Learn to ignore specific revisions
  • David Négrier's avatar
    David Négrier committed
    const path = require('path');
    const webpack = require('webpack');
    
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    
    David Négrier's avatar
    David Négrier committed
    
    module.exports = {
        entry: './src/index.ts',
        devtool: 'inline-source-map',
        devServer: {
            contentBase: './dist',
    
    David Négrier's avatar
    David Négrier committed
            host: '0.0.0.0',
            disableHostCheck: true,
    
    David Négrier's avatar
    David Négrier committed
            historyApiFallback: {
                rewrites: [
                    { from: /^_\/.*$/, to: '/index.html' }
                ],
                disableDotRule: true
            },
    
    David Négrier's avatar
    David Négrier committed
        },
        module: {
            rules: [
                {
                    test: /\.tsx?$/,
                    use: 'ts-loader',
                    exclude: /node_modules/,
                },
            ],
        },
        resolve: {
            extensions: [ '.tsx', '.ts', '.js' ],
        },
        output: {
    
            filename: '[name].[contenthash].js',
    
    David Négrier's avatar
    David Négrier committed
            path: path.resolve(__dirname, 'dist'),
    
    David Négrier's avatar
    David Négrier committed
            publicPath: '/'
    
    David Négrier's avatar
    David Négrier committed
        },
    
        externals:[
            require('webpack-require-http')
        ],
    
    David Négrier's avatar
    David Négrier committed
        plugins: [
    
                    template: './dist/index.tmpl.html',
                    minify: {
                        collapseWhitespace: true,
                        keepClosingSlash: true,
                        removeComments: false,
                        removeRedundantAttributes: true,
                        removeScriptTypeAttributes: true,
                        removeStyleLinkTypeAttributes: true,
                        useShortDoctype: true
                    }
    
    David Négrier's avatar
    David Négrier committed
            new webpack.ProvidePlugin({
                Phaser: 'phaser'
    
    David Négrier's avatar
    David Négrier committed
            }),
    
            new webpack.EnvironmentPlugin([
                'API_URL',
                'UPLOADER_URL',
                'ADMIN_URL',
                'DEBUG_MODE',
                'STUN_SERVER',
                'TURN_SERVER',
                'TURN_USER',
                'TURN_PASSWORD',
                'JITSI_URL',
                'JITSI_PRIVATE_MODE',
                'START_ROOM_URL'
            ])
    
    David Perez's avatar
    David Perez committed
        ],
    
    
    David Négrier's avatar
    David Négrier committed
    };