This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
kassa/static/webpack.config.js
T
nikolark be9f84d6dd ⬆ Bump python deps and upgrade everything
Replace gulp with webpack
Switch to npm from yarn
Add eslint and prettier
2020-01-05 19:31:17 +01:00

97 lines
2.5 KiB
JavaScript

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const baseStyleLoader = (env) => (env === 'production' ? MiniCssExtractPlugin.loader : require.resolve('style-loader'));
module.exports = (env, argv) => {
return {
entry: './app/index.js',
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist')
},
resolve: {
extensions: ['.jsx', '.js', '.json', '.scss', '.css'],
modules: ['node_modules']
},
plugins: [
new MiniCssExtractPlugin(),
env === 'production' ? new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/) : null,
env !== 'production' ? new HtmlWebpackPlugin({ template: './app/index.html' }) : null,
new webpack.ProvidePlugin({
jQuery: 'jquery'
})
].filter(Boolean),
module: {
rules: [
{
test: /\.(png|jpg|gif|svg)$/,
use: [
{
loader: require.resolve('file-loader'),
options: {}
}
]
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: require.resolve('file-loader')
},
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: require.resolve('babel-loader')
},
{
test: /\.css$/,
loaders: [baseStyleLoader(env), require.resolve('css-loader')]
},
{
test: /\.scss$/,
loaders: [
baseStyleLoader(env),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
modules: false,
sourceMap: true
}
},
{
loader: require.resolve('sass-loader'),
options: {
sassOptions: {
precision: 8
}
}
}
]
}
]
},
devServer: {
contentBase: path.resolve(__dirname, 'dist'),
historyApiFallback: true,
overlay: {
errors: true,
warnings: false
},
port: 8001,
publicPath: '/',
proxy: {
'/api': 'http://localhost:8000'
// TODO: get urls
},
stats: {
assets: false,
modules: false,
chunks: false
}
},
devtool: env === 'production' ? 'source-map' : 'cheap-module-eval-source-map'
};
};