Files
squoosh/webpack.config.js
2018-03-09 14:17:36 -05:00

79 lines
1.7 KiB
JavaScript

let path = require('path');
let webpack = require('webpack');
let MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = function(_, env) {
return {
mode: env.mode || 'development',
entry: './src/index',
resolve: {
extensions: ['.ts', '.js', '.scss', '.css'],
alias: {
style: path.join(__dirname, 'src/style')
}
},
module: {
rules: [
{
test: /\.s?css$/,
use: [
MiniCssExtractPlugin.loader,
{ loader: 'css-loader' },
// 'sass-loader?includePaths='+encodeURIComponent(path.join(__dirname, 'node_modules'))
{
loader: 'sass-loader',
options: {
includePaths: [path.join(__dirname, 'node_modules')]
}
}
]
},
{
test: /\.ts$/,
// loader: 'awesome-typescript-loader'
loader: 'typescript-loader'
},
{
test: /\.js$/,
loader: 'babel-loader',
options: {
presets: [
['env', {
loose: true,
uglify: true,
modules: false,
targets: {
browsers: 'last 2 versions'
},
exclude: [
'transform-regenerator',
'transform-es2015-typeof-symbol'
]
}]
],
plugins: [
'syntax-dynamic-import',
'transform-decorators-legacy',
'transform-class-properties',
'transform-object-rest-spread',
'transform-react-constant-elements',
'transform-react-remove-prop-types',
['transform-react-jsx', {
pragma: 'h'
}],
['jsx-pragmatic', {
module: 'preact',
export: 'h',
import: 'h'
}]
]
}
}
]
},
plugins: [
new webpack.optimize.SplitChunksPlugin({})
]
};
};