You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tty-share/frontend/webpack.config.js

73 lines
1.9 KiB
JavaScript

const webpack = require("webpack");
const copyWebpackPlugin = require('copy-webpack-plugin')
const develBuild = process.env.TTY_SHARE_ENV === 'development';
let mainConfig = {
entry: {
'tty-receiver': './tty-receiver/main.js',
},
output: {
path: __dirname + '/public/',
filename: '[name].js',
},
module: {
rules: [
{
test:/\.(js|jsx)$/,
use: [{
loader: 'babel-loader',
options: {
babelrc: false,
presets: ['env', 'react'],
},
}],
},
{
test: /\.(tsx|ts)?$/,
use: ['awesome-typescript-loader']
},
{
test: /node_modules.+xterm.+\.map$/,
use: ['ignore-loader']
},
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader']
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.woff($|\?)|\.woff2($|\?)|\.ttf($|\?)|\.eot($|\?)/,
use: ['url-loader']
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
use: ['url-loader', 'image-webpack-loader']
},
{
test: /\.js\.map$/,
use: ['source-map-loader']
}
]
},
plugins: [
new copyWebpackPlugin([
'static',
'templates',
], {
debug: 'info',
}),
],
};
if (develBuild) {
mainConfig.devtool = 'inline-source-map';
} else {
mainConfig.plugins.push(new webpack.optimize.UglifyJsPlugin( { minimize: true }));
}
module.exports = mainConfig;