63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const webpack = require('webpack');
 | 
						|
const path = require('path');
 | 
						|
const HtmlWebpackPlugin = require('html-webpack-plugin');
 | 
						|
const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
 | 
						|
const CopyPlugin = require("copy-webpack-plugin");
 | 
						|
const CompressionPlugin = require("compression-webpack-plugin");
 | 
						|
 | 
						|
const isDevServer = process.env.WEBPACK_SERVE;
 | 
						|
console.log("Dev server is " + isDevServer);
 | 
						|
var host;
 | 
						|
if (isDevServer) {
 | 
						|
    //ensure no trailing /
 | 
						|
    host = 'http://10.23.44.186';
 | 
						|
} else {
 | 
						|
    host = '';
 | 
						|
}
 | 
						|
 | 
						|
module.exports = {
 | 
						|
    mode: "development",
 | 
						|
    entry: ['./src/main.ts'],
 | 
						|
    devtool: 'inline-source-map',
 | 
						|
    plugins: [
 | 
						|
        new webpack.DefinePlugin({
 | 
						|
            PUBLIC_URL: JSON.stringify(host),
 | 
						|
        }),
 | 
						|
        new webpack.EnvironmentPlugin({
 | 
						|
            redirect: 'true'
 | 
						|
        }),
 | 
						|
        new HtmlWebpackPlugin({
 | 
						|
            alwaysWriteToDisk: true,
 | 
						|
            title: "PlantCtrl",
 | 
						|
        }),
 | 
						|
        new HtmlWebpackHarddiskPlugin(),
 | 
						|
        new CompressionPlugin({
 | 
						|
            algorithm: "gzip",
 | 
						|
            test: /\.js$|\.css$|\.html$/,
 | 
						|
            threshold: 0,
 | 
						|
            minRatio: 0.8
 | 
						|
        })
 | 
						|
    ],
 | 
						|
    module: {
 | 
						|
        rules: [
 | 
						|
            {
 | 
						|
                test: /\.html$/,
 | 
						|
                type: 'asset/source',
 | 
						|
            },
 | 
						|
            {
 | 
						|
                test: /\.tsx?$/,
 | 
						|
                use: 'ts-loader',
 | 
						|
                exclude: /node_modules/,
 | 
						|
            }
 | 
						|
        ]
 | 
						|
    },
 | 
						|
    resolve: {
 | 
						|
        extensions: ['.tsx', '.ts', '.js', '.html'],
 | 
						|
    },
 | 
						|
    output: {
 | 
						|
        filename: 'bundle.js',
 | 
						|
        path: path.resolve(__dirname, '.'),
 | 
						|
    },
 | 
						|
    devServer: {}
 | 
						|
};
 |